Javascript 防止中键单击按钮在FIREFOX中打开新选项卡不工作
我有以下简单的代码-我有一个相当复杂的东西,但这证明了我的观点- 我有下面的htmlJavascript 防止中键单击按钮在FIREFOX中打开新选项卡不工作,javascript,html,firefox,Javascript,Html,Firefox,我有以下简单的代码-我有一个相当复杂的东西,但这证明了我的观点- 我有下面的html <body> <a id="somelink" href="http://www.google.com" onmousedown="preventOpen(event,this)" onclick="return confirmClick();">Click me</a> </body> 以及下面的javascript
<body>
<a id="somelink" href="http://www.google.com"
onmousedown="preventOpen(event,this)" onclick="return
confirmClick();">Click me</a>
</body>
以及下面的javascript代码
<script>
function preventOpen(event, element){
event = event || window.event;
event.preventDefault();
if (event.which != 3) {
element.click();
}
}
function confirmClick(){
return confirm("Are you sure?");
}
</script>
功能打开(事件、元素){
event=event | | window.event;
event.preventDefault();
if(event.which!=3){
元素。单击();
}
}
函数confirmClick(){
返回确认(“您确定吗?”);
}
基本上,我试图在点击链接时提示确认是否使用鼠标中键来打开新选项卡-我想阻止新选项卡打开-。这在Chrome中非常有效,但是在Firefox中不起作用——当它退出javascript代码(即“confirmClick”函数)时,它会打开一个新选项卡,尽管它成功触发了preventDefault()。你知道为什么这在FF中不起作用吗?现在我宁愿远离jQuery回复。我想正确的方法是使用
auxclick
事件。()
window.addEventListener("auxclick", (event) => {
if (event.button === 1) {
if (!confirm("Are you sure?")) event.preventDefault();
}
});