如何用jQuery检测用户是否同时按下Ctrl+F组合键?
解决Ctrl+F组合键触发弹窗的问题
嘿,我来帮你搞定这个小bug!你的代码之所以没效果,核心问题是逻辑判断出错了——你写的if (e.keyCode == 17 && e.keyCode == 70)根本不可能成立,因为一次keydown事件里,keyCode只能对应一个按键呀,不可能同时是17(Ctrl键)和70(F键)~
要检测Ctrl+F这种组合键,正确的思路是:判断Ctrl键是否处于按下状态(用e.ctrlKey这个布尔属性,按下时为true),同时当前触发事件的是F键(keyCode为70)。
给你修正后的代码:
$(document).keydown(function(e){ // 检测Ctrl键按下 + 当前按键是F if (e.ctrlKey && e.keyCode === 70) { // 阻止浏览器默认的Ctrl+F搜索行为,避免和弹窗冲突 e.preventDefault(); alert('Hello World!'); } });
这里额外加了e.preventDefault()是因为浏览器本身自带Ctrl+F的搜索功能,不加的话,你的弹窗和浏览器自带的搜索框会同时弹出来,体验很差,所以一定要加上这行来禁用默认行为哦。
内容的提问来源于stack exchange,提问作者Newbie
相关产品推荐
相关产品推荐

