gpt4 book ai didi

javascript - background.js 中的 Chrome 扩展 keydown 监听器

转载 作者:行者123 更新时间:2023-11-28 18:37:48 26 4
gpt4 key购买 nike

我正在创建一个扩展程序,允许用户在 Vivaldi 浏览器上使用类似 chrome 的选项卡切换功能。

在我的background.js中我尝试过

addEventListener("keydown", function(e) {
console.log(e.code); // never gets here
})

我最初让 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();

我想将此功能移至我的background.js,以便它独立于浏览器操作运行。

最佳答案

DOM 键盘事件监听器仅捕获焦点位于页面内时发生的击键。

无法显示背景页面,因此无法获得焦点。它永远不会接收任何输入事件。

您可能想查看chrome.commands API ,但它具有相当的限制性。有充分的理由:您真的、真的不希望扩展程序能够收集所有击键。

您可以通过使用(有效)命令调用您的扩展来部分绕过限制,这将打开其弹出窗口,进而可以使用 DOM 监听器捕获更多事件。

关于javascript - background.js 中的 Chrome 扩展 keydown 监听器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36739780/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com