guacamole-common-js

最近遇到个问题,即远程桌面开启后,切换到别的tab页,输入事件失效了。

1
2
3
4
5
6
7
8
9
10
var keyboard = new Guacamole.Keyboard(document);

keyboard.onkeydown = function(keysym) {
// Do something ...
};

keyboard.onkeyup = function(keysym) {
// Do something ...
};

代码大致如上。

原因

Guacamole.Keyboard进行了事件捕获且阻止了冒泡,因此只要没有销毁就会一直捕获网页所有按键。

解决办法

  1. keyboard.onkeydown/onkeyup绑定事件可以保存到其它地方,将keyboard.onkeydown=null,keyboard.onkeyup=null。之后再触发恢复即可。
  2. new Guacamole.Keyboard绑定元素设置为RDP桌面的元素即可

相关文档