如何检测退出键按下?
如何检测 IE、Firefox 和 Chrome 中的转义键按下情况? 下面的代码在 IE 中工作并发出警报 27
,但在 Firefox 中则发出警报 0
$('body').keypress(function(e){
alert(e.which);
if(e.which == 27){
// Close my modal window
}
});
How to detect escape key press in IE, Firefox and Chrome?
Below code works in IE and alerts 27
, but in Firefox it alerts 0
$('body').keypress(function(e){
alert(e.which);
if(e.which == 27){
// Close my modal window
}
});
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(11)
使用 JavaScript 您可以检查工作jsfiddle
使用 jQuery 你可以检查工作jsfiddle
Using JavaScript you can do check working jsfiddle
Using jQuery you can do check working jsfiddle
纯 JS,
您可以将侦听器附加到文档的
keyUp
事件。另外,如果您想确保没有与
Esc
键一起按下任何其他键,您可以使用ctrlKey
、altKey
的值,和shifkey
。Pure JS
you can attach a listener to
keyUp
event for the document.Also, if you want to make sure, any other key is not pressed along with
Esc
key, you can use values ofctrlKey
,altKey
, andshifkey
.检查
keyCode
&&其中
&keyup
||按键
check for
keyCode
&&which
&keyup
||keydown
纯 JS(无 JQuery)
pure JS (no JQuery)
下面的代码不仅禁用 ESC 键,还检查按下该键的条件,并根据情况决定是否执行该操作。
在此示例中,
将禁用 ESC 按键操作。
您可以执行任何操作,例如使用以下命令隐藏 div:
还考虑按下 ESC 键的情况:
如果您想将其应用于所有人,则可以删除此 if 条件部分。或者您可以在此处将 INPUT 定位为仅当光标位于输入框中时应用此操作。
Below is the code that not only disables the ESC key but also checks the condition where it is pressed and depending on the situation, it will do the action or not.
In this example,
will disable the ESC key-press action.
You may do anything like to hide a div with this:
Where the ESC key pressed is also taken into consideration:
You may remove this if condition part if you like to apply to this to all. Or you may target INPUT here to only apply this action when the cursor is in input box.
创建函数
最好的方法是为此FUNCTION:
EXAMPLE:
Best way is to make function for this
FUNCTION:
EXAMPLE:
在 Firefox 78 上使用此命令(“按键”不适用于 Escape 键):
On Firefox 78 use this ("keypress" doesn't work for Escape key):
我认为最简单的方法是 vanilla javascript:
Updated: Changed key =>键码
i think the simplest way is vanilla javascript:
Updated: Changed key => keyCode
简单的 JavaScript 代码来检测 Escape 键是否被按下
Simple javascript code to detect Escape key is pressed
注意:
keyCode
已弃用,使用key
代替。代码片段:
keyCode
和 keypress 是已弃用。jQuery 的转义键的键码
Note:
keyCode
is becoming deprecated, usekey
instead.Code Snippet:
keyCode
and keypress are deprecated.Which keycode for escape key with jQuery
keydown
事件适用于 Escape,并且具有允许您在所有浏览器中使用keyCode
的优点。此外,您需要将侦听器附加到document
而不是正文。2016 年 5 月更新
keyCode
现已被弃用,大多数现代浏览器都提供key
属性现在,尽管您现在仍然需要后备以获得良好的浏览器支持(在编写当前版本的 Chrome 和 Safari 不支持它)。2018 年 9 月更新
evt.key
是现在所有现代浏览器都支持。The
keydown
event will work fine for Escape and has the benefit of allowing you to usekeyCode
in all browsers. Also, you need to attach the listener todocument
rather than the body.Update May 2016
keyCode
is now in the process of being deprecated and most modern browsers offer thekey
property now, although you'll still need a fallback for decent browser support for now (at time of writing the current releases of Chrome and Safari don't support it).Update September 2018
evt.key
is now supported by all modern browsers.