firefox add-on shortcut does not work anymore

送分小仙女□ 提交于 2020-01-03 02:59:06

问题


I have used following commands in my browser.xul to set a shortcut for my addon.

<keyset id="mainKeyset">
  <key id="key_convert"
       modifiers="accel"
       keycode="VK_F12"
       oncommand="myfunction()" />"
</keyset>

It used to work for previous versions of Firefox, but not anymore for newer versions. has anything changed in the syntax?

Thanks


回答1:


That code example looks correct, I suspect that there is some code within myfunction() that is failing, so we need more information probably. Try to replace myfunction() with alert("test"), that should work.




回答2:


Some notes:

  • You must add it to a keyset, as the key listeners are attached when keyset is added
    • source: http://forums.mozillazine.org/viewtopic.php?f=19&t=2711165&p=12885299&hilit=mainKeyset#p12885299
  • You must set an oncommand attribute
    • source: How to set an XUL key dynamically and securely?

Can copy paste this to scratchpad:

var keyset = document.createElementNS('http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul', 'keyset'); //http://forums.mozillazine.org/viewtopic.php?f=19&t=2711165&p=12885299&hilit=mainKeyset#p12885299
//cant use mainKeyset see topic above
var key = document.createElementNS('http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul', 'key');
var props = {
  id: 'key_convert',
  modifiers: 'accel',
  keycode: 'VK_F12',
  oncommand: 'alert("tirggered")'
};
for (var p in props) {
  key.setAttribute(p, props[p]);
}
keyset.appendChild(key);
Services.wm.getMostRecentWindow('navigator:browser').document.documentElement.appendChild(keyset);


来源:https://stackoverflow.com/questions/26813424/firefox-add-on-shortcut-does-not-work-anymore

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!