在Mozilla / Firefox扩展中使用sendKeyEvent发送组合键击

时间:2011-02-01 22:39:49

标签: javascript firefox firefox-addon mozilla

我正在构建一个Mozilla扩展,我需要使用sendKeyEvent函数发送窗口按键。当我向窗口发送一个按键时,我有它工作,但当我尝试发送一个多按键模式时(即SHIFT + 3发送#字符),它无法正常工作。有没有人知道如何向窗口发送多个密钥?我尝试了以下代码,但它似乎没有起作用:

var utils = window.QueryInterface(Components.interfaces.nsIInterfaceRequestor).getInterface(Components.interfaces.nsIDOMWindowUtils);
utils.sendKeyEvent("keydown", 51, 51, 4);
utils.sendKeyEvent("keypress", 51, 51, 4);
utils.sendKeyEvent("keyup", 51, 51, 4);

我研究过网络但我找不到任何多键组合的例子。

UPDATE ::好的,所以我问这个问题的原因是因为我正在构建一个与网站互动的自定义FF扩展。在网站上他们有一些快捷键,在扩展名中我想触发几个快捷键事件。一个这样的捷径是SHIFT + 3(#pound符号)。所以在网站上我认为他们有类似的东西:

function key_event(evt)
{
     if(evt.keyCode == 16) {
         if(evt.keyCode == 51){ 
           FIRE EVENT
         }
     }
}

现在有人知道如何在javascript中触发此事件,因为sendKeyEvent似乎没有触发它吗?我最初的想法是创建一个while循环,按下SHIFT键并设置一个间隔按3键。在某些时候,他们必须同时被触发?不确定这是否是最佳方式。任何指导/想法将不胜感激!

感谢您的时间。

1 个答案:

答案 0 :(得分:1)

对于Octothorpe(“#character”),请尝试发送其ASCII码。也就是说,使用35而不是51。

类似的东西:

utils.sendKeyEvent("keypress", 35, 35, 4);