当前位置:首页 > JavaScript

js 实现esc

2026-02-01 22:07:41JavaScript

监听键盘ESC键事件

在JavaScript中监听ESC键可以通过keydownkeyup事件实现。ESC键的键码是27,现代浏览器也支持key属性直接判断按键名称。

document.addEventListener('keydown', function(event) {
  if (event.key === 'Escape' || event.keyCode === 27) {
    console.log('ESC键被按下');
    // 执行关闭模态框、退出全屏等操作
  }
});

移除ESC事件监听器

如果需要动态取消监听,需使用命名函数而非匿名函数:

function handleEsc(event) {
  if (event.key === 'Escape') {
    console.log('ESC触发');
  }
}

// 添加监听
document.addEventListener('keydown', handleEsc);

// 移除监听
document.removeEventListener('keydown', handleEsc);

React/Vue中的实现

在框架中使用时需要注意组件卸载时的清理:

React示例:

useEffect(() => {
  const handleEsc = (event) => {
    if (event.key === 'Escape') {
      closeModal();
    }
  };
  window.addEventListener('keydown', handleEsc);
  return () => window.removeEventListener('keydown', handleEsc);
}, []);

Vue示例:

mounted() {
  window.addEventListener('keydown', this.handleEsc);
},
beforeUnmount() {
  window.removeEventListener('keydown', this.handleEsc);
},
methods: {
  handleEsc(event) {
    if (event.key === 'Escape') {
      this.$emit('close');
    }
  }
}

浏览器兼容性处理

对于老旧浏览器可结合keyCodewhich属性:

document.onkeydown = function(event) {
  event = event || window.event;
  const key = event.key || event.keyCode;
  if (key === 'Escape' || key === 27) {
    // 兼容处理
  }
};

实际应用场景

  1. 关闭模态框:检测ESC键关闭弹出的对话框
  2. 退出全屏模式:与document.exitFullscreen()配合使用
  3. 取消操作:在表单编辑等场景中提供快捷取消方式

注意事项:

  • 避免在同一个页面多次绑定相同事件
  • 全屏API在某些浏览器需要特定权限
  • 移动端设备通常没有物理ESC键

js 实现esc

标签: jsesc
分享给朋友:

相关文章

css3结合js制作

css3结合js制作

CSS3 结合 JavaScript 制作动态效果 CSS3 和 JavaScript 结合可以实现丰富的动态效果,包括动画、交互和响应式设计。以下是几种常见的实现方式: CSS3 动画与 Jav…

js实现动画

js实现动画

使用 CSS 动画与 JavaScript 控制 通过 JavaScript 动态添加或移除 CSS 类来触发动画。CSS 定义关键帧(@keyframes),JavaScript 通过 classL…

js实现文件下载

js实现文件下载

使用 a 标签下载文件 通过动态创建 a 标签并设置 download 属性实现文件下载。适用于已知文件 URL 或 Blob 数据的情况。 function downloadFile(url,…

js 实现倒计时

js 实现倒计时

实现倒计时的基本方法 使用 JavaScript 实现倒计时可以通过 setInterval 或 setTimeout 结合日期计算来完成。以下是两种常见实现方式。 使用 setInterval…

js实现全选

js实现全选

实现全选功能的方法 在JavaScript中实现全选功能通常涉及监听全选复选框的点击事件,并根据其状态控制其他复选框的选中状态。以下是几种常见的实现方式: 基础DOM操作实现 通过获取所有目标复选框…

js实现全屏

js实现全屏

实现全屏的基本方法 使用JavaScript实现全屏功能主要依赖Element.requestFullscreen()方法。现代浏览器均支持此API,但不同浏览器可能需要添加前缀。 // 触发全屏…