У меня есть расширение Firefox, которое можно активировать с помощью сочетания клавиш. Я хочу, чтобы пользователи могли динамически изменять комбинацию клавиш.
Мой XUL выглядит так
<keyset id="ksMain">
<key id="keyDoMyThing" modifiers="control,shift" key="e" command="cmdDoMyThing"/>
</keyset>
cmdDoMyThing - ссылка на элемент в наборе команд. Когда я нажимаю Ctrl + Shift + E, команда запускается.
Я пытался как изменить существующий элемент, так и создать новый элемент с помощью JavaScript, но, хотя я могу заставить работать комбинацию старого ключа до stop , я не могу заставить работать новый. Вот пример кода, который я использую
keyelem = document.createElement('key');
keyelem.setAttribute('id', 'keyDoMyThing');
keyelem.setAttribute('command', 'cmdDoMyThing');
keyelem.setAttribute('key', key);
keyelem.setAttribute('modifiers', modstr);
keyset.appendChild(keyelem);
Я могу использовать отладчик, чтобы убедиться, что для modstr задана правильная строка, а для ключа - ключ, который я хочу использовать.
Как я могу сделать так, как бы я хотел?