如何在xul窗口中附加window.close到cntrl + w keypress事件?

时间:2010-04-07 04:23:16

标签: javascript javascript-events firefox-addon xul

我有一个XUL窗口,我希望 cntrl + w 热键关闭窗口,但是当我附加时:

window.addEventListener("keypress", function(ev) {
  GM_log("onkeypress handler: \n"
  + "keyCode property: " + ev.keyCode + "\n"
  + "which property: " + ev.which + "\n"
  + "charCode property: " + ev.charCode + "\n"
  + "Character Key Pressed: "
  + String.fromCharCode(ev.charCode) + "\n");
}, true);

到页面,它对待按'w'和'cntrl + w'相同,charCode 119 ..如何确定cntrl + w被按下以便我可以window.close()?

2 个答案:

答案 0 :(得分:3)

在XUL中,这是通过以下方式完成的:

<keyset>
   <key id="key_close" key="W" modifiers="control" oncommand="window.close();" />
</keyset>

请参阅:xul tutorial - keyboar shortcuts

答案 1 :(得分:1)

使用ev.ctrlKey来检测是否按下了ctrl键(它是一个布尔值)。