我想在网络环境中使用罗技鼠标的额外按钮。
我在 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
})
最后两个目前不会在任何浏览器中注册,并且您无法覆盖浏览器后退和浏览器前进事件,因此如果您单击这些按钮,它将更改页面(如果它们设置为该行为)。