Firefox XUL-addon如何阻止网站窃取按键事件?

时间:2016-05-24 17:45:31

标签: javascript javascript-events firefox-addon keypress xul

我使用了一个稍微被黑客攻击的Firemacs版本,这是一个基于XUL的“旧版”Firefox插件。要观察keypress个事件,该插件会创建一个<overlay>并提供一个使用以下内容的脚本:

window.addEventListener('keypress', handler, true);

然而,网站可能会“窃取”这些事件。例如,在SO的问题文本框中,我无法键入C-b,因为它与某些格式短接。同样,Facebook窃取了很多的键绑定,特别是C-y,我用它来从剪贴板粘贴。

问题:如何修改插件以便始终首先捕获按键事件?
额外:这个<overlay>是如何被覆盖的?

1 个答案:

答案 0 :(得分:1)

您需要使用keydownkeyup并阻止这些。按键是响应keydown后跟keyup。你会注意到它会引发第3次。因此,如果您阻止密钥在e.stopPropagation(); e.preventDefault中与window.addEventListener('keydown', func, true);一起传播,则应阻止它。