Google chrome extension chrome扩展:如何获取关键事件
有没有办法在google chrome扩展文件--Google chrome extension chrome扩展:如何获取关键事件,google-chrome-extension,Google Chrome Extension,有没有办法在google chrome扩展文件--background.html-中获取关键事件 document.onkeydown = function() { alert('test) }; 前面的代码不起作用。我假设您希望为扩展实现热键。事实上,你的代码应该是可以工作的,除了它在背景页面上工作,背景页面通常不打开来捕捉按键 要在全局范围内捕捉按键,或者至少在网页上捕捉按键,您必须使用发送到后台页面的。内容脚本被注入到打开的网页中,并插入捕捉按键的方法,然后向后台页面发送一条消息,其
background.html
-中获取关键事件
document.onkeydown = function() {
alert('test)
};
前面的代码不起作用。我假设您希望为扩展实现热键。事实上,你的代码应该是可以工作的,除了它在背景页面上工作,背景页面通常不打开来捕捉按键
要在全局范围内捕捉按键,或者至少在网页上捕捉按键,您必须使用发送到后台页面的。内容脚本被注入到打开的网页中,并插入捕捉按键的方法,然后向后台页面发送一条消息,其中包含按下按键的信息。不确定这是否仍然处于活动状态,但更新可能会帮助像我这样刚刚使用Chrome扩展的人。新版本允许您在不使用内容脚本的情况下接收相同的功能 使用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");
}
});
希望这有帮助 首先,您需要一个背景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"
]
}
]
“背景”:{
“脚本”:[
“popup.js”
],
“持续”:假
},
“内容脚本”:[
{
“匹配项”:[“”],
“js”:[
“popup.js”
]
}
]
但这只允许4个热键。这只需要使用某些键,并且CTRL必须是其中的一部分。我发现这对我的扩展的用户来说很不方便,所以我将尝试直接在内容中检测密钥。不幸的是,这个API受到可注册密钥列表的严重限制。从developer.chrome.com链接:“支持的键:A-Z、0-9、逗号、句点、起始、结束、上页、下页、空格、插入、删除、箭头键(上、下、左、右)和媒体键(MediaNextTrack、MediaPlayPause、MediaPrevTrack、MediaStop)。@PatrickDark,最糟糕的是,没有Ctrl键,您无法自行注册该键。基本上,它是无用的。换句话说,它不是真正的关键事件的好替代品。但是注入在很多页面上不起作用,比如chrome URL、pdf文档等。