在某些网站上,您可以右键单击某个链接,然后选择"在新标签页中打开"它工作正常,但如果使用鼠标中键就可以了。 我曾经遇到过这几次,它不是太烦人但我仍然好奇是什么导致了这种行为。 (关于如何) 这是一个使用Chrome 46浏览的网站: http://ebookfriendly.com/free-public-domain-books-sources/ html链接标签看起来很正常:
<a title="Feedbooks" href="http://www.feedbooks.com/">⇢ Feedbooks</a>
&#13;
原因必须是javascript中的内容。有什么指针吗?
答案 0 :(得分:1)
似乎此链接有一个使用preventDefault()
的事件监听器,并通过其他方式打开该页面。
编辑:很难说为什么完全他们这样做但是当我看到整个处理程序时,似乎链接被传递给谷歌分析:
function(e) {
var n = this.getAttribute("href"),
i = "string" == typeof this.getAttribute("target") ? this.getAttribute("target") : "";
ga("send", "event", "outbound", "click", n, {
hitCallback: t(n, i)
}, {
nonInteraction: 1
}), e.preventDefault()
}
答案 1 :(得分:1)
您可以询问导致事件的按钮并阻止默认行为。
document.querySelector("a").addEventListener("click", function(e) {
if (e.which === 2) {
e.preventDefault();
}
}, false);
答案 2 :(得分:0)
$(document).mousedown(function(e){
if(e.which == 2 ){
e.preventDefault();
alert("middle click");
return false;
}
});
仅在您保持警报()
时才有效答案 3 :(得分:0)
执行此操作的一种方法是使用auxclick
事件。 (auxclick on MDN)
下面的代码将阻止整个页面的中间点击行为。
window.addEventListener("auxclick", (event) => {
if (event.button === 1) event.preventDefault();
});