You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用JavaScript无依赖检测Ctrl+F11组合键?

如何无依赖检测Ctrl + F11组合键

嘿,我完全懂你这种搜遍解决方案却找不到合适无依赖方法的感受!其实问题出在你用的keypress事件上——它主要针对可打印字符,对于F11这类功能键,用keydown或keyup事件会更可靠,而且原生JS就能轻松实现,不需要任何库。

无依赖原生JS实现代码

直接用原生的addEventListener监听keydown事件,同时检测ctrlKey状态和F11按键:

window.addEventListener('keydown', function(e) {
  // 两种判断方式兼顾兼容性:keyCode是旧标准,e.key是更直观的新标准
  if (e.ctrlKey && (e.keyCode === 122 || e.key === 'F11')) {
    e.preventDefault(); // 可选:阻止F11默认的全屏行为
    console.log("You pressed Ctrl + F11");
  }
});

方案说明

  • keydown事件能稳定捕获所有按键(包括功能键),而keypress对功能键的支持并不统一
  • e.ctrlKey属性会在Ctrl键按下时返回true,刚好用来检测组合键的触发条件
  • 同时判断e.keyCode和e.key是为了适配不同浏览器,e.key直接返回按键名称(比如"F11"),可读性更强

和你原有代码的区别

你之前的jQuery代码只单独检测了F11按键,改成无依赖版本后,核心是替换jQuery事件绑定为原生addEventListener,再加上ctrlKey的状态判断即可。

小提醒

部分浏览器可能会将Ctrl+F11设为系统级快捷键,这时候你的事件可能会被拦截,记得在常用浏览器上测试验证哦!

内容的提问来源于stack exchange,提问作者chickens

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.21 07:20:36