Javascript 如果扩展使用默认浏览器快捷方式,则Chrome会阻止这些快捷方式

Javascript 如果扩展使用默认浏览器快捷方式,则Chrome会阻止这些快捷方式,javascript,google-chrome,google-chrome-extension,Javascript,Google Chrome,Google Chrome Extension,我正在写一个Chrome扩展,用于取消非预期的视频回放。我使用Ctrl+Z作为最常用的取消快捷键。 扩展运行正常,它对快捷方式作出反应,它执行用户输入时的预期操作 问题是,Ctrl+Z变成了特定于扩展的快捷方式。它只作为我的扩展的命令。例如,它不会取消Chrome上所有文本区域的输入,不仅是在网页上,而且在地址栏上 虽然我理解这种行为是为了避免歧义,但我希望扩展及其快捷方式只能在YouTube上工作,因为扩展只能访问其页面 这是我的manifest.json的一部分: "content

我正在写一个Chrome扩展,用于取消非预期的视频回放。我使用
Ctrl+Z
作为最常用的取消快捷键。 扩展运行正常,它对快捷方式作出反应,它执行用户输入时的预期操作

问题是,
Ctrl+Z
变成了特定于扩展的快捷方式。它只作为我的扩展的命令。例如,它不会取消Chrome上所有文本区域的输入,不仅是在网页上,而且在地址栏上

虽然我理解这种行为是为了避免歧义,但我希望扩展及其快捷方式只能在YouTube上工作,因为扩展只能访问其页面

这是我的
manifest.json
的一部分:

"content_scripts":
  [
    {
          "matches": ["*://*.youtube.com/*"],
          "js": ["contentscript.js"],
          "all_frames": true,
          "run_at": "document_idle"
    }
  ],
  "permissions": ["*://*.youtube.com/*"],
我只想在YouTube页面上使用
Ctrl+Z
作为扩展快捷键,而在其他页面上使用它作为默认的取消快捷键。不幸的是,我还没有找到解决办法。有什么解决办法吗


如果您需要更多的代码示例,您可以找到完整的源代码(它非常小)。

manifest.json
中使用
命令时,无法不为其他操作阻止所选快捷方式(感谢wOxxOm)

但是,可以使用
document.addEventListener
轻松定义快捷方式。在我的例子中,它如下所示:

document.addEventListener(“向下键”),函数(事件){
如果(event.ctrlKey&&event.code==='KeyZ'){
撤消();
}
});

不幸的是,默认情况下,它不支持快捷方式自定义,就像way所做的那样,但它可以工作。

manifest.json
中使用
命令
,而不为其他操作阻止所选快捷方式(多亏了wOxxOm)

但是,可以使用
document.addEventListener
轻松定义快捷方式。在我的例子中,它如下所示:

document.addEventListener(“向下键”),函数(事件){
如果(event.ctrlKey&&event.code==='KeyZ'){
撤消();
}
});

不幸的是,默认情况下,它不支持快捷方式自定义,就像
命令那样,但它是有效的。

我假设您在manifest.json中使用
命令
,在这种情况下,API就是这样工作的,除了不使用它之外,您别无选择。只需在youtube URL上运行的内容脚本中使用标准DOM事件侦听器即可。我假设您正在manifest.json中使用
命令
,在这种情况下,API就是这样工作的,除了完全不使用它之外,您别无选择。只需在youtube URL上运行的内容脚本中使用标准DOM事件侦听器。