Chrome:如果页面可滚动,则不会触发带有鼠标中键的辅助单击事件

nio*_*ioe 6 html javascript google-chrome custom-element

我尝试通过向 HTML 自定义元素添加-Event监听器来检测鼠标中键单击。只要页面不可滚动,这在 Win 10 计算机上的 Chrome 中就完全可以正常工作。auxclick

然而,一旦页面可滚动,该事件就不再触发,并且中键单击的标准行为开始(通过移动鼠标滚动页面)。

中键单击触发滚动

有谁知道解决这个问题的方法?

我创建了一个小型CodePen来演示该行为。不滚动它就可以正常工作,但如果您取消 CSS 窗格中第 2 行的注释 ( min-height: 200vh;),则中键单击会触发滚动行为。

nio*_*ioe 6

感谢i\xd1\x95\xd1\x94\xcf\x81\xd1\x94\xd0\xbd\xd1\x8f为我指明了正确的方向。

\n

如果我也听mousedown-Event,检查它是否是通过中键单击触发的,然后防止默认行为,一切似乎都工作正常。

\n

查看更新的CodePen以获取完整的解决方案。

\n

我仍然认为这是一种黑客行为。如果有人知道为什么 Chrome 会有这样的行为,我会很高兴您能在这里分享。;)

\n