2013-03-13 115 views
3

我想創建一個鏈接,其行爲就像常規的<a>標籤。目前我使用onClick="window.location='',但它不會打開中間點擊新窗口,如<a>標籤。如何模擬與JS的鏈接?

<table> 
    <tr onClick="window.location='/generatedlink.php'"> 
     <td> </td> 
     <td> </td> 
    </tr> 
</table> 

我並不真的需要右鍵點擊功能

+0

@hop:我把'jquery'提供標籤背面的OP。誰知道,也許有人會有一個需要jQuery的答案。這個標籤讓他們知道發佈這些信息是可以的。 – 2013-03-13 18:26:49

+0

@Chad這正是他已經有的,只是沒有內聯 – Swadq 2013-03-13 18:27:13

+0

實際鏈接有什麼問題? – 2013-03-13 18:34:54

回答

5

如果你想要的任何瀏覽器提供的功能,如中單擊打開一個新的窗口或選項單擊鼠標右鍵(新窗口,新標籤,保存,複製鏈接等),它必須是一個正常的鏈接。瀏覽器無法知道你的非元素應該像鏈接一樣。

+3

+1這是正確的答案。 @skyisred,你可以嘗試檢測哪個按鈕被關閉等,但正確的跨瀏覽器將會是一場**不斷**的戰鬥。在行的「td」元素中放入'display:block'的'a'元素,這樣瀏覽器就可以完成它的工作。 – 2013-03-13 18:21:52

+0

右鍵點擊功能不是很重要,我大多需要點擊中間點 – skyisred 2013-03-13 18:39:44

+0

同樣適用:如果你想要瀏覽器提供的行爲,包括中途點擊在新標籤中打開,你必須使用正常的鏈接,以便瀏覽器知道以應用這些行爲。 – Adrian 2013-03-13 18:41:15

-1

您可以使用

window.open( '/ generatedlink.php')

在新窗口中打開,但它很可能會被瀏覽器攔截。

您可以使用mousedown來檢測任何mousedown事件。

$('a.dynlinks').mousedown(function(e){ 
    e.preventDefault(); 
    switch(e.which){ 
     case 1: 
      //left click 
      // use window.location 
      break; 
     case 2: 
      //middle click 
      // use window.open 
      break; 
    } 
}) 
+0

*「...但很可能會被瀏覽器阻止。」*不直接響應點擊它不會。 – 2013-03-13 18:27:18

+1

這並不能解決OP詢問的中間點擊問題。 – Adrian 2013-03-13 18:29:54

+0

更新爲操作中點擊問題 – jagzviruz 2013-03-13 19:03:19

-3

使用document.location的

代替window.location的

<table> 
    <tr onClick="document.location='/generatedlink.php'"> 
     <td> </td> 
     <td> </td> 
    </tr> 
</table>