在浏览器中监听鼠标附加按钮

在浏览器中监听鼠标附加按钮

我想在网络环境中使用罗技鼠标的额外按钮。

我在 Ubuntu 上(但其他操作系统中也有类似的东西),我可以将这些按钮与操作系统操作绑定。->回答:右键单击是 Javascript 事件吗?

我想在 javascript 中监听这个按钮,就像普通按钮一样:

element.addEventListener(function(evt){
  switch(evt.which){
    case 1: //left click
    case 2: //middle click
    case 3: //right click
    case XX: //other buttons clicks
  }
}

https://stackoverflow.com/a/2405857/1064270

我看到的唯一解决方案是浏览器扩展和本机消息传递,至少在 Chrome 上是这样。

所以我正在寻找一条更快捷的路径!

答案1

首先,这个问题应该在 stackoverflow 上提出,而不是在这里。

但我会回答这个问题,因为当我在谷歌上寻找类似的东西时它出现了,所以其他人可能会感到疑惑。

有一个标准规范用于检测最多两个额外的鼠标按钮(除左键、中键(滚轮)、右键之外)。

问题是它还没有被任何浏览器实现,可能是因为它可能对诈骗“陷阱”有影响。

event传递给处理程序的对象中,有一个.buttons属性,它是按下哪些按钮的位图(一次按下多个按钮)。

document.addEventListener('mousedown', function(ev) {
  console.log('MB1', ev.buttons & 1) // 1 if clicked, 0 if not
  console.log('MB2', ev.buttons & 2)
  console.log('MB3', ev.buttons & 4)
  console.log('MB4', ev.buttons & 8) // usually browser-back
  console.log('MB5', ev.buttons & 16)// usually browser-forward
})

最后两个目前不会在任何浏览器中注册,并且您无法覆盖浏览器后退和浏览器前进事件,因此如果您单击这些按钮,它将更改页面(如果它们设置为该行为)。

相关内容