这是我的代码
<a href="javascript:void(0)" onclick="myFun('www.google.com');" onmousedown="myFun('www.google.com');">
每当我点击此链接时,我的函数都会被使用onclick事件调用。我添加了onmousedown事件以进行右键单击捕获。但问题是,在选择&#34;在新标签页中打开&#34; 或&#34;在新窗口中打开&#34; 选项之前,系统会调用此功能。当用户使用右键单击并在选择右键单击选项之前,将调用函数。我不想要这种行为。我想在用户实际选择&#34;在新标签中打开链接&#34; 或&#34;在新窗口中打开链接&#34; 选项时调用此功能。
我不想在状态栏中显示链接,也不想让用户复制链接地址。这就是我使用onclick和onmousedown事件的原因。
请帮帮我。感谢
答案 0 :(得分:0)
听起来你正在寻找这样的东西,一旦上下文菜单启动就会改变链接:
function myFun2(url) {
linkEl.href = url;
}
然后为a
元素分配一个ID(即“linkEl”),删除onmousedown
处理程序,并分配一个oncontextmenu
处理程序,如:
oncontextmenu="myFun2('www.google.com');"
然后当启动上下文菜单时,链接将发生变化,因此如果选择“在新标签中打开”或“在新窗口中打开”,它将转到Google(在此示例中)而不是链接是什么设置为先前。
答案 1 :(得分:0)
您遇到的问题是使用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
}
}