使用JavaScript打开动态链接新窗口(但不是弹出窗口)

时间:2012-03-22 01:03:52

标签: javascript

我正在尝试在新窗口中打开一个链接,但是该链接可能包含一个额外的QueryString,当用户单击该链接时,该链接很不幸。所以即使链接也在代码中给出,如:

<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>

这会产生一个弹出窗口(我不想要)。 你的建议是什么?

2 个答案:

答案 0 :(得分:3)

最好只在链接中使用查询字符串,它会更有意义。

您可以尝试在类似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);
}

答案 1 :(得分: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