使用JavaScript键控

使用JavaScript键控,javascript,jquery,keydown,Javascript,Jquery,Keydown,我不知道如何使用纯JavaScript进行“键控” 下面是我如何使用jQuery实现的,但是有没有一种方法可以同样使用纯JS呢? 我只想检查是否有一种方法,并学习如何做到这一点,以及看到代码的差异和长度。多谢各位 $('body').on('keydown', function(e) { if (e.keyCode === 27) return false; }); 编辑:用于禁用“Esc”按钮 给你 document.body.onkeydown = function(e) {

我不知道如何使用纯JavaScript进行“键控”

下面是我如何使用jQuery实现的,但是有没有一种方法可以同样使用纯JS呢? 我只想检查是否有一种方法,并学习如何做到这一点,以及看到代码的差异和长度。多谢各位

$('body').on('keydown', function(e) {
    if (e.keyCode === 27) return false;
});
编辑:用于禁用“Esc”按钮

给你

document.body.onkeydown = function(e) {
    if (e.keyCode === 27) return false;
}
正如您所见,jQuery较短,但执行的代码较少

document.body.onkeydown = function(e) {
    if (e.keyCode === 27) return false;
}

如您所见,jQuery较短,但执行的代码较少

我不喜欢将侦听器设置为属性,因此我添加了如下侦听器:

var ele = document.getElementById('test');
ele.addEventListener('keydown', function() {
    //code
}, false);

我不喜欢将侦听器设置为属性,因此我添加了如下侦听器:

var ele = document.getElementById('test');
ele.addEventListener('keydown', function() {
    //code
}, false);
试试这个

HTML

<body onkeydown="YourFunction(event)">...</body>
试试这个

HTML

<body onkeydown="YourFunction(event)">...</body>

在纯javascript中,它是这样做的

document.body.onkeydown=function(e){
  key=e.keyCode || e.charCode|| e.which; //cross browser complications
  if(key===27){
    return false;
  }
}

希望对您有所帮助,它与您在纯javascript中提供的JQuery脚本相同

document.body.onkeydown=function(e){
  key=e.keyCode || e.charCode|| e.which; //cross browser complications
  if(key===27){
    return false;
  }
}

希望有帮助,它与您提供的JQuery脚本相同

您没有在您最喜欢的搜索引擎中搜索“keydown JavaScript”吗?我确实搜索了@epascarello。然而,这一切都不起作用。如果我添加警报或控制台日志,它会工作,但如果我想覆盖Esc上有“关闭”的内容,按下它就不会工作。与jQuery tho一起工作:/pure javascript中的跨浏览器问题很有趣-你知道你可以查看jQuery源代码,看看它是如何在那里完成的…只要说出来,因为这正是你要问的。为什么不显示不起作用的内容。你没有搜索“keydown javascript”吗在你最喜欢的搜索引擎中?我确实搜索过@epascarello。然而,这一切都不起作用。如果我添加警报或控制台日志,它会工作,但如果我想覆盖Esc上有“关闭”的内容,按下它就不会工作。与jQuery tho一起工作:/pure javascript中的跨浏览器问题很有趣-你知道你可以查看jQuery源代码,看看它是如何在那里完成的…只要说出来,因为这正是你要问的。为什么不显示不起作用的内容。IE8和下面不支持AddEventListener为什么我无法得到任何有效的答案! 它们都能工作,但我放在随机的东西上,比如alert();但不是为了覆盖fancybox esc关闭!:(IE8及以下版本不支持AddEventListener为什么我无法获得任何答案!它们都可以工作,但我放置的随机内容(如alert())除外;但不用于覆盖fancybox esc关闭!:(更新了,现在,我想它会有更好的浏览器支持,不确定IE thoughUpdated,现在,我想它会有更好的浏览器支持,不确定IE thoughIE是否通过事件对象。嗯……我使用的是IE9.0。它工作得很好。我还将浏览器模式更改为IE7和IE8。这段代码也工作得很好。IE does未通过事件对象。嗯……我正在使用IE9.0。它工作正常。我还将浏览器模式更改为IE7和IE8。这段代码也工作正常。