chrome extension:如何获取关键事件

can*_*man 21 google-chrome-extension

有没有办法在谷歌Chrome扩展文件中获取关键事件 - background.html- ?

document.onkeydown = function() {
  alert('test)
};
Run Code Online (Sandbox Code Playgroud)

以前的代码不起作用.

小智 49

不确定这是否仍处于有效状态,但更新可能有助于像我这样刚刚使用Chrome扩展程序的人.新命令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"
    }
}
...
Run Code Online (Sandbox Code Playgroud)

然后你可以在你的背景页面中捕获它

chrome.commands.onCommand.addListener(function (command) {
    if (command === "save") {
        alert("save");
    } else if (command === "random") {
        alert("random");
    }
});
Run Code Online (Sandbox Code Playgroud)

希望这有帮助!

  • 但这只允许4个热键. (3认同)

Håv*_*ard 30

我假设您要为扩展程序实现热键.您的代码实际上应该可以正常工作,除了它在后台页面上工作,后台页面通常无法捕获按键.

要在全局或至少在网页上捕获按键,您必须使用将消息发送到后台页面的内容脚本.内容脚本将注入打开的Web页面并插入捕获按键的方法,然后向后台页面发送一条消息,其中包含有关按下哪些键的信息.