javascript - ESC 键关闭弹出窗体

标签 javascript jquery html onkeypress

我在网上找到了一个代码,它可以帮助我使用 ESC 按钮关闭弹出对话框。代码如下:

<script type="text/javascript">
 function ESCclose(evt) {
  if (evt.keyCode == 27) 
   window.close();
 }
</script>

按键

<body onkeypress="ESCclose(event)">

我尝试在表单标签中使用 onkeypress。它不起作用,因为我无法使用 ESC 按钮关闭对话框。有帮助吗?

最佳答案

问题是因为 keypress 事件不会针对不可打印的字符(例如退格键或转义符)触发。

要解决此问题,您可以改用keydown:

function ESCclose(evt) {
  if (evt.keyCode == 27) {
    //window.close();
    console.log('close the window...')
  }
}
<body onkeydown="ESCclose(event)"></body>

当您使用 jQuery 标记问题时,您可以使用它来更好地分离 HTML 和 JS 代码:

$(document).on('keydown', function(e) {
  if (e.keyCode == 27)
    window.close();
});

请注意,上述代码的body 元素上不需要on* 事件属性。

关于javascript - ESC 键关闭弹出窗体,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43249379/

相关文章:

javascript - 如何保持textarea中的文本格式相同

javascript - 使用javascript计算时间差时面临NaN结果

html - BlueGriffon 帮助 - 根据窗口大小重新排列的连续图像

javascript - Javascript 中的弹性列表

javascript - 如何使用 Node.js 查询 mysql 数据库以通过 url 中的名称(而不仅仅是 ID)获取特定用户(字段)

javascript - Jquery 确定有效 DPI 来缩放 Canvas 中的图像

html - CSS - 如何在页面加载时自动导航到页面上的颜色

javascript - 类型错误 : 'click' called on an object that does not implement interface HTMLElement

javascript - 如何使用 React 应用页面特定的全屏背景图像?

php - 无法使用 Jquery 获取 JSON 值