在新标签页或窗口中打开链接

1306

是否有可能在新标签页中打开链接,而不是在当前标签页中打开?

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

14
当你使用target="_blank"时,请注意可能发生的标签劫持攻击!参见:http://danielstjules.github.io/blankshield/ (为了防止这种情况,请在链接中添加rel ="noopener")。 - Carl Ambroselli
4个回答

2353

6
好的,我会尽力进行翻译。以下是您需要翻译的内容:原文:there is no _tab... there is _new and _blank翻译:没有“_tab”…有“_new”和“_blank”。 - Nathan
6
根据 w3schools 的资料,没有新的更新。链接为:http://www.w3schools.com/tags/att_a_target.asp - Toon Casteele
42
_blank 是由供应商处理的。大多数现代浏览器默认会在新标签页中打开链接。旧版浏览器(如IE)则会在新窗口中打开链接,这可能是因为它们没有标签功能或者默认行为是在新窗口中打开链接。 - Larry
6
如果没有使用链接中指定的特殊名称,目标便是你要定位的窗口(或“框架”)的名称。如果将其设置为“_tab”或“_new”,则会打开具有该名称的窗口。如果用户单击该链接,返回到您的初始页面并单击具有相同目标的另一个链接,则第一次打开的选项卡/窗口应加载其内容。 - umassthrower
34
提示:要注意由 "_blank" 引起的漏洞。更多信息请参见 https://medium.com/@jitbit/target-blank-the-most-underestimated-vulnerability-ever-96e328301f4c - Aistis
显示剩余7条评论

223

决定链接是在新标签页还是新窗口打开,不应该由你来决定,这个选择最终应该由用户浏览器的设置来实现。有些人喜欢使用标签页;而有些人则喜欢新窗口。

使用 _blank 将告诉浏览器根据用户的浏览器配置和点击方式(例如:鼠标中键点击、Ctrl+点击或普通点击)在新标签页或新窗口中打开链接。

此外,某些浏览器并没有标签页功能,因此只能在新窗口中打开链接,不能在新标签页中打开链接。


11
我完全同意取消用户或浏览器的决策权。用户会有一种习惯,这将剥夺他们的偏好权利。然而,话虽如此... 有时是必要的。(打印对话框等) - avanderw
7
尽管我认为在许多情况下这是正确的,但对于不太懂技术的用户来说,我认为(个人意见)这通常并不正确。一些用户可能需要此帮助,否则他们有可能不知道如何返回他们想要保留的页面。这是我的建议,试图从用户体验的角度提供更多的观点。 - matthewsheets
8
我同意在网站上应该避免这样做,但请记住并非所有的HTML都是为网站而写的。我正在考虑一些针对内部网络应用程序的东西,在那里使一些链接在新标签页中打开会很不错,而无需教办公室里的每个人如何使用ctrl+点击。 - TecBrat
15
这个答案明明没有回答问题,为什么评价却那么高? - Yay295
7
我坚决不同意这是一个“最佳实践”,并认为它完全取决于使用情况。例如,我在一个网络应用程序上工作,用户大部分时间都在执行日常工作,如果链接在同一标签页中导航将是可怕的。同样,如果我有一个教程/说明页面,我会链接到相关材料,并不希望在原地导航。然而,如果页面只是旨在被用户消费,那么原地导航可能更理想。 - Spazmoose
显示剩余5条评论

55

将您的元素target属性设置为"_tab"

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

编辑2: 从我从评论中了解到的内容。将目标设置为_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

1
你是指_blank还是_new...据我所知,没有_tab。 - Nathan
11
W3Schools并非W3C。请参考http://www.w3fools.com/。 - Jace Cotton
2
@Jacedc 你可以使用任何名称代替 _tab。它创建了一个窗口组。 - Anirudh Ramanathan
6
W3Schools并非所有内容都不正确。但是,在你之前提到了W3C(万维网联盟),然后链接到了W3Schools,而W3Schools与W3C或制定Web标准没有任何关系。不过我看到你已经编辑过了。 :) - Jace Cotton
3
没错,因为你指出来了,我认错了,谢谢你 :) - Toon Casteele
显示剩余4条评论

40
你可以设置 target="_blank" 来实现这个功能,w3schools 提供了 一个示例

简单明了,谢谢 - Emre
请注意,即使添加rel="noopener noreferrer"是可选的,它也存在安全问题。只需复制接受的答案,或阅读其中提到的链接以了解为什么需要它。 - Nick

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