我有一个可以通过快捷键激活的 Firefox 扩展。我希望用户能够动态更改组合键。
我的 XUL 看起来像这样
<keyset id="ksMain">
<key id="keyDoMyThing" modifiers="control,shift" key="e" command="cmdDoMyThing"/>
</keyset>
cmdDoMyThing 是对命令集中元素的引用。当我按 ctrl+shift+e 时,命令会触发。
我尝试使用 JavaScript 修改现有元素和创建新元素,但是虽然我可以让旧组合键停止工作,但我无法让新组合键发生。这是我正在使用的代码示例
keyelem = document.createElement('key');
keyelem.setAttribute('id', 'keyDoMyThing');
keyelem.setAttribute('command', 'cmdDoMyThing');
keyelem.setAttribute('key', key);
keyelem.setAttribute('modifiers', modstr);
keyset.appendChild(keyelem);
我可以使用调试器来验证 modstr 是否设置为正确的字符串,并且 key 是否设置为我要使用的密钥。
我怎样才能以我想要的方式实现这一点?