如何使用 window 的 keydown 侦听器将 Chrome 键用作快捷方式?

How to use window's keydown listener for keys Chrome uses as shortcuts?

我在 Google Chrome:

中遇到 运行 这段代码的奇怪问题
window.addEventListener('keydown', function (event) {
    console.log(event)
})

虽然我看到了一些键的日志(例如,"w"、"a"、"s"、空格键、"esc")-其他键不会触发此事件:"d"、"r"、"l"

事实上,其中一些字母(如 "r")是 Chrome 中的内置快捷方式,可触发其他事件,即页面刷新。

有趣的是,使用preventDefault并没有解决问题:

window.addEventListener('keydown', function (event) {
    event.preventDefault()
    console.log(event)
})

请注意 在 Firefox 中原始代码(没有 preventDefault)工作正常 - 但在 Chrome.

知道如何解决这个问题吗?

更新 可能值得注意(尽管我不确定为什么会影响它)当 运行 从文件系统中调用此代码时,Chrome 上没有问题。但是,一旦提供此代码(即来自 localhost),我们就会 运行 进入问题。

document.addEventListener("keydown",function(e){
        console.log(e.keyCode);
    })

您可以使用 e 或 event.. 如果您按下任意键,您将获得该键的特定键码。 然后你可以输入任何条件,比如

if(e.keyCode == 32){
   video.pause();
}

32 是空格键的键码

哇。结果我安装了一个扩展,它用键绑定做了一些古怪的事情。

这是一个很好的生产力扩展,但如果其他人正在使用它,请注意这个陷阱:

Vimium