如何将窗口的Keydown侦听器用作Chrome用作快捷键的键?

时间:2019-06-01 05:51:12

标签: javascript google-chrome addeventlistener keydown

奇怪的问题,我遇到了在Google Chrome浏览器中运行以下代码的情况:

test_folder
|- test_test_file
|- test_test_folder
    |- test_test_test_folder
    |- test_test_test_file

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

实际上,其中某些字母(如“ r”)是Chrome中的内置快捷方式,会导致其他事件触发,即页面刷新。

有趣的是,使用window.addEventListener('keydown', function (event) { console.log(event) }) 不能解决问题:

preventDefault

请注意,在Firefox中原始代码(不使用window.addEventListener('keydown', function (event) { event.preventDefault() console.log(event) }) )可以正常运行-但在Chrome浏览器中不能。

有什么办法解决这个问题吗?

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

2 个答案:

答案 0 :(得分:0)

哇。原来我安装了一个扩展程序,该扩展程序正在使用键绑定进行一些怪异的事情。

这是对生产力的一个很好的扩展,但是如果有人在使用它,请当心这一陷阱:

Vimium

答案 1 :(得分:-1)

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

您可以使用e或event .. 如果您按下任何键,您将获得该键的特定键代码。 那么您可以输入任何条件,例如

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

32是空格键的密码