如何监听鼠标侧键点击事件?
我在做一个需要支持鼠标侧键操作的网页应用,但发现常规的 click 事件根本捕获不到侧键(比如前进/后退那两个按键)。我试过用 mousedown,但 event.button 的值在不同浏览器里表现不一致,有的返回 3、4,有的干脆没反应。有没有靠谱的办法能准确识别并响应鼠标侧键?
下面是我目前测试用的简单结构:
<div id="area" style="width: 200px; height: 200px; background: #eee;">
点击区域
</div>
<script>
document.getElementById('area').addEventListener('mousedown', (e) => {
console.log('Button:', e.button);
});
</script>
mouseup事件里才给你返回正确的值,而且这两个键在浏览器里有默认行为(后退/前进),得先 preventDefault 拦截掉。改一下就行:
另外注意,Chrome 之类的浏览器默认把这两个键的默认行为绑死了,光 preventDefault 有时候还不够。如果你的应用跑在页面内部(不是 iframe),大多数情况下上面这招够用了。
如果是在 iframe 里被限制了,可以考虑用
pointer-events: none之类的 CSS 技巧,或者直接放弃这两个键的功能——毕竟用户体验也比较奇怪,很多人根本不知道鼠标还有侧键。