在新标签页中打开网址或尽可能重复使用现有网址

时间:2012-12-08 16:43:09

标签: javascript html tabs

现在我有一个链接

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

但是,这总是会打开一个新选项卡。我想要以下效果

  1. 如果用户已有包含相同网址的标签,请重复使用该标签,并尽可能刷新
  2. 否则,请打开新标签页
  3. 如何使用JavaScript实现这一目标?

    如果只有一些特定于浏览器的方法,那就没关系了,因此没有相应支持的浏览器用户将“回退”到始终为新的标签方式。

1 个答案:

答案 0 :(得分:23)

您可以设置特定窗口的名称,以便打开重复使用选项卡。问题是,只要href相同,就不会重新加载。因此,您无法轻松获得refresh部分。

因此,例如,您可以:

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

在JS中,您实际上可以使用window.open获得相同的内容。您也可以将该网址用作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>

如果页面位于同一个域中,此时您可能也会尝试对页面进行经验性刷新。