现在我有一个链接
<a href="blabla" target="_blank">link</a>
然而,这总是打开一个新标签页。我想要以下效果:
- 如果用户已经有一个包含相同URL的标签页,则重用该标签页,如有可能则刷新
- 否则,打开一个新的标签页
我该如何使用JavaScript实现此功能?
如果只有一些特定于浏览器的方法,那么也可以,因为没有对应支持的浏览器用户将“回退”到始终新建标签页的方式。
现在我有一个链接
<a href="blabla" target="_blank">link</a>
然而,这总是打开一个新标签页。我想要以下效果:
我该如何使用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>
如果页面在同一个域名下,此时您可以尝试进行经验性的页面刷新。
target="child"
会在当前标签页已打开的情况下刷新该标签页。<a href="https://abcd.com" target="child">ABcd</a>
<a href="https://defg.com" target="child">Defg</a>