在新选项卡中打开url或尽可能重复使用现有url

现在我有一个链接

<a href="blabla" target="_blank">link</a> 

但是,这总是打开一个新的标签。 我想要以下效果

  1. 如果用户已经有一个具有相同URL的选项卡,请重新使用该选项卡,并在可能的情况下进行刷新
  2. 否则,打开一个新标签

我怎样才能实现这个使用JavaScript?

如果只有一些浏览器特定的方法,那么没问题,所以没有相应支持的浏览器的用户将会“回退”到总是新的选项卡方式。

您可以设置特定的窗口名称,以打开重复使用该选项卡。 问题是,至于HREF将是相同的,它不会被重新加载。 所以你不能轻易获得refresh部分。

所以,例如,你可以有:

 <a href="blabla" target="blabla">link</a> <a href="foo" target="bar">link</a> 

在JS中,使用window.open实际上可以获得相同的结果。 你也可以使用url作为target ,这样你就不需要手动指定:

 <a href="blabla" onclick="window.open(this.href, this.href); return false">link</a> <a href="foo" onclick="window.open(this.href, this.href); return false">link</a> 

您也可以概括一下,然后在文档中添加一个点击监听器,以这种方式打开一些链接。 就像是:

 <div id="container"> <a href="blabla">link</a> <a href="foo">link</a> </div> <script> document.getElementById("container").onclick = function(evt){ if (evt.target.tagName === "A") window.open(evt.target.href, evt.target.href); return false; } </script> 

如果页面在同一个域上,那么在这一点上,你也许可以尝试对页面进行经验性的刷新。