【问题标题】:Open a link in a new tab(in same window) or reload and focus it if it is already opened using 'href'在新选项卡中打开链接(在同一窗口中)或重新加载并关注它,如果它已经使用“href”打开
【发布时间】:2015-04-23 04:24:07
【问题描述】:

我想在同一窗口的新选项卡中使用“href”(不使用 javascript/jQuery)打开一个链接。如果链接已经打开,它应该重新加载并聚焦它。

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

我试过了。

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

如果页面已经存在,它不会重新加载页面。它会一次又一次地在新标签中打开链接。

有什么建议吗?

【问题讨论】:

  • 不是真正的重复,因为这个问题是关于如何在没有脚本的情况下做到这一点。
  • @haxtbh 我在不使用javascript的情况下问这个问题。这可能吗?
  • 该副本中答案的第一部分给出了没有 JS 的解决方案。
  • @haxtbh 哦。好的,会看到的。

标签: html hyperlink href


【解决方案1】:

简单地给你的目标一个唯一的值,像这样:

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

这是目标属性的默认行为。 _blank 是少数特殊关键字之一,具有特殊行为,如 HTML standard 中所述。

请注意,该标准不涉及窗口,而是涉及浏览上下文。浏览上下文通常是一个窗口或选项卡,但这取决于浏览器。

至于特殊关键字:

  • _blank 表示总是使用新的浏览上下文(例如选项卡或窗口)
  • _self 表示总是使用相同的浏览上下文
  • _parent 表示使用父上下文(如果有)
  • _top 表示使用最顶层的上下文,如果有父母的话

使用 iframe,事情会稍微复杂一些。

edit:还请注意,用户第二次单击该链接时,目标页面将不会重新加载。如果您需要刷新,则必须使用 Javascript。

【讨论】:

  • 我有&lt;a href="page.html" target="name"&gt;click&lt;/a&gt; 和另一个带有&lt;a href="page.html?showthis=a" target="name"&gt;clickkkk&lt;/a&gt; 查询字符串的链接。是否可以使用两个查询字符串重新加载 page.html
  • 我不知道。你为什么不试试呢?
  • 它按我的意愿工作,但如果我不想刷新那个新打开的窗口怎么办?请帮我解决一下这个。我已经打开了一次新窗口,然后它不应该被刷新。
【解决方案2】:

如果您想始终保持弹出“焦点”,您可以使用最初发现的技巧here。通过快速打开/关闭/打开它,我们确保它始终表现得像新窗口并抓住焦点。

<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>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2010-09-12
    • 2012-01-22
    • 2013-03-11
    • 2011-02-18
    • 1970-01-01
    相关资源
    最近更新 更多