【发布时间】:2017-12-03 15:52:23
【问题描述】:
我在最近的 webextension 格式中创建了一个小扩展,它有几个命令定义为:
"commands": {
"mycommand1": {
"suggested_key": {
"default": "Ctrl+Shift+K",
"mac": "MacCtrl+Shift+K",
"linux": "Ctrl+Shift+K",
"windows":"Ctrl+Shift+K"
},
"description": "do something 1"
}
现在我想让用户能够自定义这些键盘快捷键,但是当我这样做时:
var getCommands = browser.commands.getAll();
getCommands.then(setCommandsSettings);
function setCommandsSettings(commands){
commands.forEach(function(command) {
if(command.name=="mycommand1"){
command.shortcut="MacCtrl+Shift+L";
}
});
}
如果我检查 command.shortcut 属性,我会看到它已更改为新值,但是命令仍然只通过按旧快捷方式参与。难道我做错了什么? FF在运行时更改快捷方式是否支持?
【问题讨论】:
-
看起来不是这样 :( 真的看起来它只会从清单中提取。有道理,所以你不能劫持某人的键盘?不确定。
-
可能是,但用户自定义键盘快捷键听起来也是一个大而合法的用例。似乎对未来有一定程度的希望:discourse.mozilla.org/t/commands-how-to-redefine-shorcuts/15984bugzilla.mozilla.org/show_bug.cgi?id=1303384
标签: javascript firefox keyboard-shortcuts firefox-addon-webextensions