在同一窗口中打开一个新标签页或重新加载并聚焦已经打开的链接,使用“href”。

3

我想使用“href”(而不是使用javascript / jQuery)在同一窗口的新标签中打开链接。如果链接已经打开,则应重新加载并聚焦它。

我应该如何编写代码来实现这一点?

我尝试过。

<a href="name.html" target="_blank">Click</a>

如果页面已经存在,它不会重新加载页面。它会一遍又一遍地在新标签页中打开链接。
有什么建议吗?

这并不是一个重复的问题,因为它是关于如何在没有脚本的情况下完成的。 - leo
@haxtbh 我在不使用 JavaScript 的情况下询问,这是否可能? - user3784251
1
那个重复的答案的第一部分提供了没有使用JS的解决方案。 - haxtbh
@haxtbh 哦,好的,我会看一下的。 - user3784251
@haxtbh 但它没有专注于重新加载的那个选项卡。还有其他方法吗? - user3784251
2个回答

6

只需为您的目标设置一个唯一值,例如:

<a href="http://stackoverflow.com" target="mynewwindow">Always opens in the same window</a>

这是目标属性的默认行为。 _blank 是几个特殊关键字之一,具有特殊行为,如 HTML standard 中所述。
请注意,标准不谈论窗口,而是谈论浏览上下文。浏览上下文通常是一个窗口或选项卡,但这取决于浏览器。
至于特殊关键字:
  • _blank 表示始终使用新的浏览上下文(例如选项卡或窗口)
  • _self 表示始终使用相同的浏览上下文
  • _parent 表示使用父上下文(如果有)
  • _top 表示使用最顶层的上下文(如果有父级)
对于iframe,事情会更加复杂。
编辑:还要注意,用户第二次单击链接时,目标页面将不会重新加载。如果需要刷新,则必须使用Javascript。

我有一个带有 <a href="page.html" target="name">click</a> 的链接和另一个带有查询字符串 <a href="page.html?showthis=a" target="name">clickkkk</a> 的链接。是否可能重新加载带有这两个查询字符串的 page.html 页面? - user3784251
我不知道。你为什么不试试? - leo
它按照我的意愿工作,但如果我不想刷新新打开的窗口怎么办?请帮帮我。我已经打开了一个新窗口,那么它就不应该被刷新。 - Khushal

0

如果您想始终保持弹出窗口“聚焦”,可以使用最初在此处找到的技巧。通过快速打开/关闭/打开它,我们确保它始终像新窗口一样运行并抓住焦点。

<a href="http://stackoverflow.com" onclick="
if(window.open('','reuse_win') != null) {
   window.open('','reuse_win').close();
}" target="reuse_win">Always opens in the same window and FOCUS</a>

当向指定窗口提交“表单”时也适用。

<form name=f1 method=post action=test.html>

  <input type=text name=name value='123'>

  <input type='submit' value='Submit' 

  onclick="if(window.open('','reuse_win') != null) {
       window.open('','reuse_win').close();
    }; this.form.target='reuse_win'; return true;">

</form>

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接