使用Javascript触发鼠标中键点击事件是否可行?

13

我希望使用JavaScript触发鼠标中键点击事件。是否可以使用JavaScript触发鼠标中键单击事件?

我需要这样做是因为它可以粘贴最后选定的对象。

谢谢,Jimit


可能你可以在这里找到答案:https://dev59.com/Km025IYBdhLWcg3wNC51 - Hamed Ali Khan
2个回答

12

我曾经有同样的问题,经过大量调查研究,这就是我最终使用的方法:

if ( window.CustomEvent ) {
    var middleClick = new MouseEvent( "click", { "button": 1, "which": 2 });
    jQuery(".selector")[0].dispatchEvent( middleClick );
}

1
谢谢,这很有帮助!另请参阅http://stackoverflow.com/questions/41065688/trigger-native-browser-behavior-for-middle-click-on-a-link?noredirect=1#comment69338498_41065688 - donquixote
2
如果我在锚点标签上这样做,窗口不应该保持聚焦,而不是聚焦于新打开的选项卡/窗口吗?@donquixote - tjvg1991
1
对于中键点击,我认为“which”的值应该是2,而不是1。 - Doin
1
这对于“button”是正确的。 “which”使用不同的编号方案:https://developer.mozilla.org/en-US/docs/Web/API/MouseEvent/which - Doin
顺便说一句,通过dispatchEvent(new MouseEvent('auxclick', {button: 1}))进行测试,只会触发auxclick事件,但对链接没有任何影响(对于以上三个平台都是如此... - undefined
显示剩余6条评论

-3

您可以使用

event.button

用于识别点击了哪个鼠标按钮。

返回一个整数值,指示改变状态的按钮。

* 0 for standard 'click', usually left button
* 1 for middle button, usually wheel-click
* 2 for right button, usually right-click

  Note that this convention is not followed in Internet Explorer: see 
  QuirksMode for details.
的顺序可能因指向设备的配置方式而异。

还阅读

已单击哪个鼠标按钮?

有两个属性可用于查找已单击 的鼠标按钮:which 和 button。请注意, 这些属性并不总是适用于单击事件。 要安全地检测鼠标按钮,必须使用 mousedown 或 mouseup 事件。


6
不是OP想要的 - 他需要_触发_它,而不是检索类型。 - dwelle

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接