【问题标题】:Open link in new tab or window [duplicate]在新选项卡或窗口中打开链接[重复]
【发布时间】:2013-03-11 05:08:01
【问题描述】:

是否可以在新选项卡而不是同一选项卡中打开a href 链接?

<a href="http://your_url_here.html">Link</a>

【问题讨论】:

  • 为什么这个关于 HTML 的问题被标记为一个关于 JavaScript 的问题的重复?
  • 每当您使用 target="_blank" 时,请注意可能的 tabnabbing 攻击!另请参阅:danielstjules.github.io/blankshield(为防止出现这种情况,请在链接中添加 rel="noopener"
  • 它不是重复的。

标签: html tabs hyperlink window href


【解决方案1】:

您应该在锚标记中添加target="_blank"rel="noopener noreferrer"

例如:

<a target="_blank" rel="noopener noreferrer" href="http://your_url_here.html">Link</a>

添加rel="noopener noreferrer" 不是强制性的,但这是推荐的安全措施。更多信息可以在下面的链接中找到。

来源:

【讨论】:

  • 没有_tab...有_new和_blank
  • 根据 w3schools 的说法也没有新的:w3schools.com/tags/att_a_target.asp
  • _blank 由供应商处理。默认情况下,大多数现代浏览器将在新选项卡中打开。较旧的浏览器,例如 IE hoard,将在新窗口中打开 - 要么是因为它们没有选项卡式功能,要么是因为它们的默认行为是一个新窗口。
  • 不使用特殊名称时,如上面链接中指定的,目标是您要定位的窗口(或“框架”)的名称。如果您将其设置为 _tab 或 _new,则会打开一个具有该名称的窗口。如果用户单击该链接,返回您的初始页面并单击具有相同目标的另一个链接,则第一次打开的选项卡/窗口应该将内容加载到其中。
  • 提示:注意_blank 的漏洞。更多信息medium.com/@jitbit/…
【解决方案2】:

不应该由您决定链接是在新标签页还是新窗口中打开,因为最终这个选择应该由用户浏览器的设置来完成。有些人喜欢标签;有些像新窗口。

使用_blank 将告诉浏览器使用新的选项卡/窗口,这取决于用户的浏览器配置以及他们单击链接的方式(例如,中键单击、Ctrl+单击或正常点击)。

【讨论】:

  • 我必须完全同意取消用户或浏览器的决定。用户将拥有他们习惯的偏好,这消除了他们对偏好的权利。然而,话虽这么说......有时这是需要的。 (打印对话框等)
  • 虽然我觉得这在很多情况下都是正确的,但对于技术含量较低的用户来说,我认为(我的观点)这通常是不正确的。一些用户可能需要此帮助,否则他们可能会冒着不知道如何返回到他们希望保持打开状态的页面的风险。我的两分钱试图从用户体验的角度更多地看待事物。
  • 我同意网站的“不应该”,但请记住,并非所有 HTML 都是为网站编写的。我正在考虑为内部网络应用程序做些什么
  • 连问题都没有回答,怎么评价这么高?
  • 我显然不同意这是一种“最佳实践”,并认为这完全取决于用例。例如,我在一个 Web 应用程序上工作,用户在其中执行大部分日常工作,并且在同一个选项卡中导航链接会很糟糕。同样,如果我有一个教程/指导页面,我会链接到相关材料,并且不想就地导航。但是,如果该页面只是供用户使用,则原地导航可能更理想。
【解决方案3】:

&lt;a&gt; 元素的target 属性设置为"_tab"

编辑: 它可以工作,但是 W3Schools 说没有这样的目标属性: http://www.w3schools.com/tags/att_a_target.asp

编辑2: 根据我从 cmets 中得出的结论。将 target 设置为 _blank 会将您带到新的选项卡或窗口(取决于您的浏览器设置)。键入以下内容之一以外的任何内容都会创建一个新的选项卡组(我不确定它们是如何工作的):

_blank  Opens the linked document in a new window or tab
_self   Opens the linked document in the same frame as it was clicked (this is default)
_parent Opens the linked document in the parent frame
_top    Opens the linked document in the full body of the window
framename   Opens the linked document in a named frame

【讨论】:

  • 你的意思是 _blank 或 _new...据我所知没有 _tab
  • W3Schools 不是 W3C。见w3fools.com
  • @Jacedc 你可以在那里使用任何东西来代替_tab。它创建一个窗口组。
  • 并非 W3Schools 的所有内容都不正确。但之前你说的是 W3C(万维网联盟),然后链接到 W3Schools,它与 W3C 或创建 Web 标准无关。但我看到你编辑了它。 :)
  • 是的,因为您指出了这一点,我已得到纠正,谢谢:)
【解决方案4】:

你可以简单地通过设置target="_blank"来做到这一点,w3schools 有an example

【讨论】:

  • 简单明了,谢谢
  • 请注意,尽管添加 rel="noopener noreferrer" 是可选的,但它存在安全问题。只需复制接受的答案,或阅读其中提到的链接,了解为什么需要它。
猜你喜欢
  • 2010-09-12
  • 2013-03-22
  • 2012-01-22
  • 2012-05-03
  • 2010-12-01
  • 2011-02-18
  • 2013-11-11
相关资源
最近更新 更多