2012-05-27 150 views
6

當我在<a>標籤上使用.click()時,該事件僅在單擊元素時起作用。否則,如果用戶進行了右鍵單擊>在新窗口中打開或在新選項卡中打開,則不會觸發click()事件。。'在新標籤頁/窗口中打開時發生.click()事件

因此,我的問題是......當用戶在右鍵點擊>在新標籤頁/窗口中打開時,如何觸發click()事件?

下面是HTML:

<a href="url">Click Me</a> 

這裏是JS:

$("a").click(function(){ 
    alert('You clicked me!'); 
}); 
+0

ummm ..這只是一個右鍵單擊,而不是'在新窗口/選項卡中打開。 –

+1

我不認爲這是可能的。我看到的唯一方法是捕獲鼠標右鍵單擊並手動觸發'click'事件。 – VisioN

+0

我不認爲這是可能的。我認爲其中一個原因是您不希望網站能夠跟蹤您訪問的外部鏈接。 – gigadot

回答

2

你可以試試這個代碼,但請記住,改變UI是不是一個好IDEIA:

var addEvent = (document.addEventListener) ? 
    function(target,event,fn){ 
     if(target) return target.addEventListener(event,fn,false); 
    }: 
    function(target,event,fn){ 
     if(target) return target.attachEvent(('on' + event),fn); 
    }, 
allLinks = document.links || document.getElementsByTagName('a'); 
for(var i=0;i<allLinks.length;i++) 
    addEvent(allLinks[i],'mouseup',function(e){ 
     var e = e || event; 
     if(e.which===3){ 
      alert('Open in new tab/window'); 
      e.preventDefault(); 
      return false; 
     } 
    }); 
+0

這看起來像它認爲所有的點擊是一個「在新標籤打開」事件。 – dlsso

相關問題