我想用鼠标中键打开新标签中的链接,但我发现event.preventDefault()
在打开新标签时停止了中间点击。
我必须使用event.preventDefault()
,因为我的链接用于触发灯箱,但我希望用户能够使用鼠标中键在新标签中打开此链接,我该怎么做?
演示
document.getElementById("test").addEventListener("click", function(e) {
e.preventDefault();
});

<a id="test" target="_blank" href="//jsbin.com/wemowe">Click</a>
&#13;
答案 0 :(得分:1)
您可以将其设置为有条件,这样就不会阻止鼠标中键,即2
document.getElementById("test").addEventListener("click", function(e) {
if ( e.which !== 2 )
e.preventDefault();
});
支持旧IE的更多跨浏览器解决方案也是
document.getElementById("test").addEventListener("click", function(e) {
var evt = (e == null ? event : e), prevented = true;
if (evt.which) {
if (evt.which == 2) prevented = false;
} else if (evt.button) {
if (evt.button == 4) prevented = false;
}
if (prevented) evt.preventDefault();
});