2011-02-01 93 views
1

我正在构建Mozilla扩展,并且需要使用sendKeyEvent函数发送窗口按键。当我向窗口发送一个单击按键时它有效,但当我尝试发送多按键模式时(例如,SHIFT + 3发送#字符)它不起作用。有没有人有任何想法如何发送多个键到窗口?我曾尝试下面的代码,但它似乎并不奏效:在Mozilla/Firefox扩展中使用sendKeyEvent发送组合键击

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); 

我研究了网络,但我无法找到多键组合的任何实例。

更新::确定,所以我问这个问题的原因是因为我正在建立一个自定义FF扩展,将与网站互动。在网站上他们有一些快捷键,在扩展中,我想触发一些快捷键。一个这样的捷径是SHIFT + 3(#英镑符号)。于是就相信网站,他们有类似以下内容:

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

现在,没有人知道我是如何引发的JavaScript这种情况下,因为sendKeyEvent似乎没有触发它?我最初的想法是创建一个按住SHIFT键并设置间隔按下3键的while循环。在某个时候,他们必须同时被触发?不知道这是否是最好的方式。任何指导/想法将不胜感激!

谢谢你的时间。

+0

对于井号( “#字符”),你有没有尝试发送它的ASCII码?也就是说,使用** 35 **而不是51.? – 2011-02-02 06:48:34

回答

1

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

喜欢的东西:

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