【发布时间】:2016-09-05 06:12:02
【问题描述】:
以下代码在 Chrome/Opera 中运行良好,但在 Firefox/IE 中无法运行。请帮助我。
$('.class name of anchor tag').mousedown(function(e){
if(e.which==2)
{
e.preventDefault();
window.location = '';
}
});
我想禁用超链接上的鼠标中键以防止在新选项卡中打开页面。代码应该在 FF/IE 中工作。我对捕获事件没有任何问题。事件触发良好。用户点击中间按钮(即触发事件时)阻止打开链接的代码是什么。
【问题讨论】:
-
尝试使用 === 而不是 ==。
-
这里是您问题的答案stackoverflow.com/a/20155501/5882767
-
@LightnessRacesinOrbit OP 无法正确陈述他的问题,但我仍然认为他的问题没有得到回答。中间点击事件会触发一个 javascript 事件,并且它具有默认行为。该事件在所有浏览器中都成功调用,但即使在该事件上调用
preventDefault也不会阻止它在某些浏览器中。 -
我不知道你将在什么具体情况下使用它,但总的来说,这似乎是非常糟糕的设计。如果它是一个链接,它应该像一个链接,包括默认的鼠标中键单击行为。如果不是,请不要使用 标签。我以前见过页面这样做,并且喜欢@SF,我真的不喜欢那样。
-
@SwR:本质上,您正在破坏浏览器的良好原生功能。通常,如果我想在转到新页面时参考上一页,我会通过中键在新选项卡中打开新页面。顺便说一句:您是否考虑了右键单击在新标签中打开?如果您这样做了,您是否考虑了处理该问题的 RightToClick 扩展程序?您是否考虑了“在链接上方用鼠标右键拖动”鼠标手势在新选项卡中打开链接,来自 MozGest 扩展?跳转到链接并按下键盘上的菜单按钮?你正在与风车进行一场艰苦的战斗。
标签: javascript html