[英]How to disable mouse middle button click to open in a new tab or new window
[英]How to disable mouse middle button click on hyperlink to open in a new tab or new window?
以下代碼在Chrome / Opera中運行良好,但在Firefox / IE中不起作用。請幫幫我。
$('.class name of anchor tag').mousedown(function(e){
if(e.which==2)
{
e.preventDefault();
window.location = '';
}
});
我想禁用超鏈接上的鼠標中鍵以防止在新標簽頁中打開頁面。該代碼應在FF / IE中有效。捕獲事件沒有任何問題。 事件觸發得很好。一旦用戶單擊中間按鈕(即事件觸發時),阻止打開鏈接的代碼是什么。
您可以將anchor tag
元素放置在另一個元素內,該元素將充當“容器”; -或(並)在其上放置另一個透明元素,並通過parent / overlay元素處理/捕獲click事件。
即使上述技術是一種變通辦法,也可以節省時間,並且如果沒有“適當的修復程序”,它可能是唯一的選擇。 該技術在其他地方也很有用,因為在其他地方需要更多控制才能進行點擊事件處理。
如果您確實應用了此技術,則可以使用“疊加層”來檢測:
如果單擊了中間按鈕 ->忽略; else->獲取定位標記的 href
值,並使用類似以下內容進行相應導航:
overlay.onclick = function(event)
{
event = (event || window.event);
if (event.which == 2 || event.button == 4 )
{ return; }
window.location.href = this.parentNode.getElementsByTagName('a')[0].href;
};
試試這個
$('.class name of anchor tag').on("mousedown", "selector", function (e) {
不要使用a-tag; 請改用跨度。 無需中斷網絡 。
如果問題是:“如何防止事情按預期進行?” 答案通常是 “不要那樣做”。
如果您不控制源,請將其從標簽更改為跨度: https : //stackoverflow.com/a/13389835/474374
$(document).on("mousedown", "selector", function (ev) {
if (ev.which == 2) {
ev.preventDefault();
alert("middle button");
return false;
}
});
我使用下面的代碼解決了我的問題,盡管它不能令人滿意,但是比以前的代碼效果更好。
$('.accordion-toggle').mousedown(function(e){
if(e.which===2) {
if(/Firefox|MSIE |Trident/i.test(navigator.userAgent)) {
e.stopPropagation();
e.preventDefault();
window.location = 'index';
return false;
}
else
{
e.preventDefault();
window.location = '';
}
}
});
如果有人知道完美的解決方案,請回答。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.