当前位置:首页 > 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中的实现

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

js 实现esc

React示例:

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

Vue示例:

js 实现esc

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键

标签: jsesc
分享给朋友:

相关文章

vue.js实现轮播

vue.js实现轮播

vue.js实现轮播的方法 使用第三方库(如Swiper) 安装Swiper库: npm install swiper 在Vue组件中引入Swiper: <template>…

js实现vue

js实现vue

Vue.js 简介 Vue.js 是一个渐进式 JavaScript 框架,用于构建用户界面。其核心库专注于视图层,易于与其他库或现有项目整合。 实现 Vue.js 的基本步骤 安装 Vue.j…

js实现乘

js实现乘

JavaScript 实现乘法运算 在 JavaScript 中实现乘法运算可以通过多种方式完成,包括基本运算符、函数封装以及高级算法(如大数乘法)。以下是几种常见方法: 使用基本乘法运算符 Jav…

js 实现vue

js 实现vue

Vue.js 的基本实现 在 JavaScript 中实现 Vue.js 的核心功能,可以通过数据绑定、响应式系统和虚拟 DOM 来实现。以下是实现 Vue.js 核心功能的简化版本。 数据响应式系…

js实现自举

js实现自举

实现 JavaScript 自举的方法 JavaScript 自举(Bootstrap)通常指通过 JavaScript 动态加载自身或依赖的脚本,实现运行时环境的初始化或扩展。以下是几种常见实现方式…

js实现吸色

js实现吸色

使用Canvas实现吸色功能 通过Canvas的getImageData方法获取像素颜色数据。创建一个Canvas元素,将目标图像绘制到Canvas上,通过鼠标事件获取坐标对应的颜色值。 const…