我正在构建Chrome扩展程序,并将命令_execute_browser_action
分配给 Alt + J 。我想在background.js中模拟这个,它使用
chrome.commands.onCommand.addListener(function(command) { /* ... */ });
我想通过不同的命令快捷方式调用_execute_browser_action
,例如 Cmd + Shift + K
在我的manifest.json中,我声明了以下内容:
"commands": {
"_execute_browser_action": {
"suggested_key": {
"mac": "Alt+J",
"linux": "Ctrl+Shift+J"
}
},
"asdf" : {
"suggested_key": {
"default": "Ctrl+Shift+K",
"mac": "Command+Shift+K"
},
"description": "asdf"
}
}
这是我的background.js:
chrome.commands.onCommand.addListener(function(command) {
console.log('onCommand event received for message: ', command);
if (command === "asdf") {
alert("asdf");
var keyPress = jQuery.Event("keypress");
keyPress.altKey = true;
keyPress.ctrlKey = false;
keyPress.which = 74;
//how do I trigger this?
}
});
我想知道如何触发这个,以便我的popup.html打开。
答案 0 :(得分:4)
您无法自行触发键盘快捷键。
将其视为事件的时间表:
您的代码仅触发5(内部jQuery事件) 到directly manipulating DOM events,你可以达到4 在任何情况下,扩展都不会回到此堆栈中的3。
您正试图以迂回的方式从代码中打开弹出窗口。可悲的是,simply not possible at all对于普通"扩展 - 对Chrome开发团队的一部分有意识的决定。
想一想提供用户界面的另一种方法,比如说,notifications或在Content Scripts的当前页面中注入一些内容。