如何仅在活动窗口为指定尺寸时禁用对应热键
浏览器端实现脚本
以下是可直接运行的JS实现,仅在浏览器视口尺寸刚好为500px宽、300px高时禁用Shift键的默认行为:
document.addEventListener('keydown', (event) => { // 仅针对Shift键做处理 if (event.key !== 'Shift') return // 获取当前视口宽高 const currentWidth = window.innerWidth const currentHeight = window.innerHeight // 匹配指定窗口尺寸 if (currentWidth === 500 && currentHeight === 300) { // 阻止Shift键的默认行为 event.preventDefault() // 若需要连带阻止Shift组合键的冒泡,可取消注释下行代码 // event.stopPropagation() } })
注意事项
- 如果你要匹配的是页面内的固定弹窗/容器尺寸,不是浏览器窗口尺寸,只需要把
window.innerWidth和window.innerHeight替换为对应DOM元素的clientWidth、clientHeight即可 - 页面脚本只能禁用当前网页内的Shift默认行为,无法影响浏览器系统级快捷键(比如Shift+Ctrl+Esc打开任务管理器这类)
- 如果需要放宽尺寸匹配的误差(比如缩放导致的像素偏差),可以把全等判断改成区间判断,比如
currentWidth >= 495 && currentWidth <= 505
内容的提问来源于stack exchange,提问作者Wenfang Du
相关产品推荐
相关产品推荐

