如何使用 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 是空格键的键码
哇。结果我安装了一个扩展,它用键绑定做了一些古怪的事情。
这是一个很好的生产力扩展,但如果其他人正在使用它,请注意这个陷阱:
我在 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 是空格键的键码
哇。结果我安装了一个扩展,它用键绑定做了一些古怪的事情。
这是一个很好的生产力扩展,但如果其他人正在使用它,请注意这个陷阱: