2012-03-22 127 views
0

我正嘗試在新窗口中打開一個鏈接,但鏈接可能包含一個附加的QueryString,當用戶單擊該鏈接時不幸可用。因此,即使該鏈接是一樣的代碼給出:用JavaScript打開動態鏈接新窗口(但不彈出)

<a href="somepage.aspx">click</a> 
當用戶點擊我要用戶去

<a href="somepage.aspx?id=1">click</a> 

,並在上面的例子中的「1」值

計算,當用戶點擊鏈接。我知道我可以做到這一點與

<script> 
function openlink() 
{ 
    var calc_i; 
    // do calculations and update calc_i value 
    window.open("somepage.aspx?id="+calc_i); 
} 
</script> 
<a onclick="openlink()">click</a> 

這會導致一個彈出窗口(我不想)。 你的建議是什麼?

+0

新窗口,但不彈出?請解釋 – Ibu 2012-03-22 01:06:06

+0

@lbu;彈出我的意思是「window.open」,通過新窗口我的意思是與_blank目標鏈接 – 2012-03-22 01:08:08

+0

我認爲他意味着一個模態窗口 – Joseph 2012-03-22 01:16:14

回答

2

嘗試以下操作:

function openlink() 
{ 
    var calc_i; 
    // do calculations and update calc_i value 
    window.open("somepage.aspx?id="+calc_i, "_blank"); 
} 

您可以指定新的窗口,應在window.open打開的名稱。如果您使用_blank,它會在一個完整的新窗口中打開。

Working example

+0

啊我不知道。 TIL。 +1 – 2012-03-22 01:24:31

+0

那麼容易?謝謝 – 2012-03-22 01:24:56

3

把鏈接中的querystring已經是真的會更好了,它會更有意義。

您可以嘗試在onclick事件中附加代碼,如下所示。

<a href="somepage.aspx" onclick="openlink(this)" target="_blank">Hello</a> 

function openlink(anchor){ 
    var calc_i = 1; 
    var page = anchor.getAttribute('href'); 
    anchor.setAttribute('href',page + '?id=' + calc_i); 
} 
+0

我選擇了其他答案,因爲我有點害怕改變主播可能會被一些偏執狂瀏覽器阻止:)但是也投了你的答案。謝謝。 – 2012-03-22 01:26:21

+0

設置href很簡單:'anchor.href = anchor.href +'?id ='+ calc_i;',不需要get/setAttribute。 – RobG 2012-03-22 02:45:22