target =“_ blank”触发两个请求

时间:2012-02-21 20:24:31

标签: jquery html ajax

以下HTML向我的REST WebService发送两个请求:

<a href="/pathto/web/service/3201329" target="_blank">
  <img class="downloadImg" src="static/images/download_icon.png">
</a>

如果我删除'target =“_ blank”'位,它只会向我的WebService发送一个请求。在尝试使用JavaScript时,我注意到了相同的行为:

onclick="window.open(this.href)"

为什么会发生这种情况的任何想法?谢谢你的帮助!

更新:我的用户端出现了错误。在上一次迭代中,我为图像添加了一个单击处理程序。我不确定为什么我会用HREF重复这项工作,但这就是问题所在。谢谢你看看。

2 个答案:

答案 0 :(得分:1)

我无法在第一个场景中看到这种情况,因为它只是一个普通的链接。

我可能会在第二次看到它发生。 onclick事件使用url打开一个新窗口。它将执行返回给浏览器,然后标签的标准导航接管并转到页面。

尝试:

onclick="window.open(this.href); return false;"

顺便说一句,现在使用内联javascript有点不受欢迎。现在的方法是在文档加载时添加一个单击处理程序。这确实超出了这个问题的范围......

答案 1 :(得分:1)

如果你想用javascript方式做,你不必使用target =“_ blank”。您可以在锚标记之前调用脚本,如下所示:

<script>
    function popup(url) {
    alert (url);
        newwindow= window.open(url);
        if (window.focus) {newwindow.focus()}
        return false;
      }
</script>

然后像这样的锚标签:

<a href="" onclick="return popup('http://www.example.com')"></a>