有没有办法在Google Chrome扩展程序文件中获取关键事件 - background.html
- ?
document.onkeydown = function() {
alert('test)
};
以前的代码不起作用。
答案 0 :(得分:48)
不确定这是否仍处于有效状态,但更新可能有助于像我这样刚刚使用Chrome扩展程序的人。新的commands api允许您在不使用内容脚本的情况下接收相同的功能。
使用manifest.json文件注册键盘命令。例如:
...
"commands": {
"save" : {
"suggested_key": {
"default": "Alt+Shift+S"
},
"description": "Save a link"
},
"random": {
"suggested_key": {
"default": "Alt+Shift+L"
},
"description": "Load a random link"
}
}
...
然后你可以在后台页面中找到它
chrome.commands.onCommand.addListener(function (command) {
if (command === "save") {
alert("save");
} else if (command === "random") {
alert("random");
}
});
希望这有帮助!
答案 1 :(得分:28)
我假设您要为扩展程序实现热键。您的代码实际上应该可以工作,除了它在后台页面上工作,后台页面通常不会打开以捕获按键。
要全局或至少在网页上捕捉按键,您必须使用content script向后台页面发送messages。内容脚本将注入打开的网页并插入捕获按键的方法,然后向后台页面发送一条消息,其中包含有关按下哪些键的信息。
答案 2 :(得分:0)
首先,您需要有一个背景 JavaScript 文件,在本例中我将调用 popup.js。这将包括您提供的代码:
document.onkeydown = function() {
// what you want to on key press.
};
然后您想将此作为后台脚本文件包含在您的 manifest.json 中:
"background": {
"scripts": [
"popup.js"
],
"persistent": false
},
"content_scripts": [
{
"matches": [ "<all_urls>" ],
"js": [
"popup.js"
]
}
]