Jac*_*tle 1 javascript google-chrome google-chrome-extension
我正在创建一个扩展,允许用户在 Vivaldi 浏览器上使用类似 chrome 的选项卡切换。
在我的background.js中我尝试过
addEventListener("keydown", function(e) {
console.log(e.code); // never gets here
})
Run Code Online (Sandbox Code Playgroud)
我最初让该事件由 content.js 脚本处理,但这需要完全加载所有新选项卡,然后才能将消息发送到 background.js 脚本
function Listener()
{
this.stage = 0;
this.listen();
}
Listener.prototype.listen = function()
{
addEventListener("keydown", this.handleKeyDown);
addEventListener("keyup", this.handleKeyUp);
}
Listener.prototype.handleKeyDown = function(event)
{
for(var i = 0; i < 9; i++) {
if(event.ctrlKey) {
if(event.code == "Digit" + (i + 1)) {
chrome.runtime.sendMessage({
greeting: i
}, function(response) {
console.log(response);
})
}
}
}
}
new Listener();
Run Code Online (Sandbox Code Playgroud)
我想将此功能移至我的background.js,以便它独立于浏览器操作运行。
DOM 键盘事件侦听器仅捕获焦点位于页面内时发生的击键。
无法显示背景页面,因此无法获得焦点。它永远不会接收任何输入事件。
您可能想查看chrome.commands
API,但它的限制相当严格。有充分的理由:你真的真的不希望扩展程序能够收集所有击键。
您可以通过使用(有效)命令来调用您的扩展来部分绕过限制,这将打开其弹出窗口,进而可以使用 DOM 侦听器捕获更多事件。
归档时间: |
|
查看次数: |
7106 次 |
最近记录: |