这是我的代码
<a href="javascript:void(0)" onclick="myFun('www.google.com');" onmousedown="myFun('www.google.com');">
每当我单击此链接时,都会使用 onclick 事件调用我的函数。我为右键单击添加了 onmousedown 事件。但问题是,在选择“在新标签页中打开” 或“在新窗口中打开” 选项之前会调用此函数。当用户使用右键单击并且在选择右键单击选项之前,将调用该函数。我不想要这种行为。我想在用户实际选择“在新标签页中打开链接” 或“在新窗口中打开链接” 选项时调用此函数。
我不想在状态栏中显示链接,也不想让用户复制链接地址。这就是我使用 onclick 和 onmousedown 事件的原因。
请帮帮我。谢谢
最佳答案
您遇到的问题是,右击和左击都是通过 onclick 函数处理的。另一种可能性是使用 oncontextmenu(如前所述 here )。
但我认为您需要以不同方式处理右键单击和左键单击,因此 onclick 是正确的事件,只需检查它是主要 (0) 还是次要 (2) mouseButton(请参阅 here)。所以你的解决方案可能是这样的:
myFun(link) {
var buttonPressed = instanceOfMouseEvent.button;
if (buttonPressed == 0) {
//Handle normal click
} else if (buttonPressed == 2) {
//Handle right click
}
}
关于javascript - 捕获 "open link in new tab"和 "Open link in new window"事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42650773/