2013-04-11 75 views
3

我希望我的鏈接看起來像合法網址,但行爲有所不同,如點擊事件發生時轉到我定義的某個跟蹤網址。 當我用鼠標左鍵單擊鏈接時,我可以用.click()處理程序捕捉它,並將href更改爲其他內容。當我點擊右鍵時,它不會被.click()捕獲,但我可以使用.mousedown()和.mouseup(),這只是我的問題的部分解決方案。在jQuery鏈接中檢測右鍵單擊的「在新選項卡中打開」?

問題是,我想確保當某個用戶右鍵單擊鏈接時,鏈接仍然看起來合法,但是當他選擇在新選項卡中打開鏈接時,我會捕獲該事件並更改HREF。最後,當鏈接上發生實際的點擊事件時,href將被更改回原始。他們真正去的網址,做了一些事情,並將它們重定向到真實的網址,但它發生得非常快。因此,此功能的目標是欺騙用戶並跟蹤他們的點擊次數。 Facebook做到了,但他們如何處理右鍵點擊和「在新標籤中打開」?

好了,如果沒有一些代碼,我想不會成氣候.. 一些代碼,我現在所擁有的:

link = $(selectorName); 
    var original_link = link.attr("href"); 
    link.click(function(){ 
     link.attr("href", "/track_and_redirect"); 
    }).mousedown(function(event) { 
     switch (event.which) { 
      case 3: 
       //alert('Right mouse button pressed'); 
       link.attr("href", "/track_and_redirect"); 
       break; 
      default: 
     } 
    }).mouseleave(function(){ 
     link.attr("href", original_link); 
    }); 

目前,當你右鍵點擊該鏈接後,新的URL將在瀏覽器中顯示的角落,我該如何繞過?

+1

你是說你想要的實際鏈路發送他們不是「合法」呢? – musefan 2013-04-11 08:59:45

+1

*「我希望我的鏈接看起來像合法網址,但行爲不同,就像去我定義的某個跟蹤網址」*不要。不要。執行Google在搜索結果頁面上的操作:通過鏈接將您帶到重定向到目標的跟蹤頁面。 (甚至他們所做的有點邪惡,因爲當你懸停鏈接時,你在狀態欄中看到的並不是你想要的真實鏈接,他們會覆蓋狀態文本。) – 2013-04-11 09:00:48

+0

爲什麼倒下的票?有些事不清楚嗎?沒有研究工作?沒有必要採取這種情感。 @musefan:他們將被引導到跟蹤網址,但鏈接本身需要看起來像直接到達目標網址。 – test 2013-04-11 10:04:29

回答

0

我用「文本菜單」,它幫助我改變的右擊所有網址老鼠。

$('#help').on('click contextmenu', "a", function(event) { 
    $(this).attr('href','my_new_url'); 
    $(this).attr('target', '_blank'); 
}); 

它也負責開新窗口,複製鏈接等

相關問題