2012-03-22 128 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