我正在尝试禁用鼠标的右键和中键,以便在单击任何菜单或超链接时无法打开新窗口或选项卡。下面的javascript代码适用于右键但不适用于中键。鼠标中键被捕获,但单击超链接或菜单时仍会打开新窗口或选项卡。
<script type="text/javascript">
if (document.layers) {
document.captureEvents(Event.MOUSEDOWN);
document.onmousedown = function () {
return false;
};
}
else {
document.onmouseup = function (e) {
if (e != null && e.type == "mouseup") {
if (e.which == 3) {
alert("Sorry..... Right click Is Disabled!!!!");
return false;
}
if(e.which===2)
{
e.preventDefault();
e.stopImmediatePropagation();
alert("Sorry..... Mouse Scroll click Is Disabled!!!!");
return false;
}
else if(e.button===4)
{
e.preventDefault();
e.stopImmediatePropagation();
alert("Sorry..... Mouse Scroll click Is Disabled!!!!");
return false;
}
}
};
}
它没有为firefox,chrome和IE而烦恼。
答案 0 :(得分:0)
试
document.onmousedown= function (e) {
if( e.which == 2 ) {
e.preventDefault();
alert("middle button");
}
}
答案 1 :(得分:0)
根据MDN,auxclick
事件处理“使用鼠标中键在新标签页中打开链接”行为。
下面的代码将阻止整个页面的中间点击行为。
window.addEventListener("auxclick", (event) => {
if (event.button === 1) event.preventDefault();
});
如果只想对特定链接禁用它,只需将事件侦听器目标(窗口)替换为对特定节点的引用即可。