如何检测鼠标中键点击?

Nat*_*ate 10 javascript

关于如何在JavaScript中检测鼠标中键的所有问题都与jQuery有关,但我想知道如何使用常规JavaScript检测鼠标中键点击.我尝试过使用onClick(),但它似乎只适用于鼠标左键.

是否有一个JavaScript函数可以检测鼠标左键和中键点击,如果没有,可以检测鼠标中键点击?

我问的原因是我想在点击链接时进行函数调用,无论是使用鼠标左键还是鼠标中键.

Sch*_*ien 14

onclick不依赖于鼠标,而是更多地依赖于目标元素本身.

以下是检测元素是否被中间点击的方法:

document.body.onclick = function (e) {
  if (e && (e.which == 2 || e.button == 4 )) {
    console.log('middleclicked')
  }
}
Run Code Online (Sandbox Code Playgroud)

  • 这只适用于按钮元素。要检测任何元素上的中键单击,您必须妥协并使用 `.addEventListener('mousedown', ...`。从技术上讲,这不是一个完整的“单击”事件,因为用户可能会移动鼠标。 (4认同)
  • 我很抱歉进行了大编辑,但 StackOverflow 不是一个注定只回答特定提问者的网站,而是一个关于如何做代码的大百科全书。我认为,您的回答具有在其他任何地方都不容易找到的有用信息,但令人困惑。我的编辑是为了使它更有用,更容易为将来遇到这个问题的人阅读。如果您认为有问题,请重新编辑。 (2认同)