鼠标侧键(如滚轮键)的点击事件在网页中无法触发怎么办?

W″倩云 阅读 72

我在开发一个画图工具时想用鼠标侧键切换工具模式,但监听mousedown事件时侧键点击没反应。尝试过检查event.button值,发现侧键对应的是1,但代码里写if (e.button === 1)还是没触发。

代码是这样写的:


document.addEventListener('mousedown', (e) => {
  if (e.button === 1) {
    console.log('侧键点击!'); // 这里没输出
  }
});

已经排除了浏览器拦截问题,其他按钮(左键0/右键2)都能正常响应,唯独中间键没反应,是什么原因导致的?

我来解答 赞 8 收藏
二维码
手机扫码查看
2 条解答
设计师艳丽
问题出在浏览器对鼠标中键的默认行为上,很多浏览器会拦截中键点击用来避免误触。试试看阻止默认事件再监听。

document.addEventListener('mousedown', (e) => {
e.preventDefault(); // 阻止默认行为
if (e.button === 1) {
console.log('侧键点击!');
}
}, { passive: false }); // 注意这里要设置passive为false


如果还是不行,可能是鼠标驱动或者系统层面的问题,换个鼠标或者环境试试看。
点赞
2026-02-19 17:07
A. 玉杰
A. 玉杰 Lv1
e.button === 1 是滚轮(中间键),不是侧键。侧键是 34,改条件就行。

document.addEventListener('mousedown', (e) => {
if (e.button === 3 || e.button === 4) {
console.log('侧键点击!');
}
});


就这样。
点赞 7
2026-02-02 14:21