<a target="_new">
和<a target="_blank">
之间的区别是什么?如果我只想在新的标签/窗口中打开链接,我该使用哪个?
答案 0 :(得分:627)
根据HTML5 Spec:
有效浏览上下文名称是任何字符串,其中至少有一个字符不以U + 005F LOW LINE字符开头。 (以下划线开头的名称是为特殊关键字保留的。)
有效的浏览上下文名称或关键字是任何字符串,它是有效的浏览上下文名称,或者是对以下之一的ASCII不区分大小写的匹配:_ blank,_self,_parent或_top。 “ - Source
这意味着HTML5和not in HTML4 (and consequently XHTML) either中没有_new
这样的关键字。这意味着,如果您将此作为目标属性的值使用,则不会出现任何一致的行为。
正如Daniel和Michael在评论中指出的那样,当使用指向不受信任网站的目标_blank
时,您应该另外设置rel="noopener"
。这可以防止开放网站通过JavaScript搞乱开场白。有关详细信息,请参阅this post。
答案 1 :(得分:125)
使用target="_blank"
会指示浏览器在用户点击链接时创建新的浏览器标签或窗口。
根据规范,使用target="_new"
在技术上是无效的,但据我所知,每个浏览器的行为方式都相同:
注意target="_new"
的行为与target="new"
完全相同,后者是有效的HTML而前者是无效的HTML。
为此添加一些混淆,在HTML4中,target
属性已被弃用。在HTML5中,这个决定被颠倒了,它再次成为规范的官方部分。无论您使用的是哪种版本的HTML,所有浏览器都支持target
,但如果您的doctype是HTML4,则某些验证程序会将使用标记为已弃用。
答案 2 :(得分:25)
TL; DR
USE _blank
target属性指定打开链接文档的位置。
USAGE: target="xyz" [don't forget double quotes]
_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
SINCE&#34; _new&#34;并不是这些中的任何一个都会在#34; framename&#34;因此,如果用户重新点击该超链接,则不会打开新标签,而是更新现有标签。而在_blank中,如果用户点击两次,则会打开2个新标签页。
答案 3 :(得分:17)
我知道这是一个老问题,使用_blank
的正确答案已被多次提及,但使用<a target="somesite.com" target="_blank">Link</a>
会带来安全风险。
使用recommended(performance benefits):
<a href="somesite.com" target="_blank" rel="noopener noreferrer">Link</a>
答案 4 :(得分:13)
之前可能会问过这个问题,但是:
“指定target =”_ new“的每个链接都会查找并按名称查找该窗口,并在其中打开。
如果您使用target =“_ blank”,则每次都会在当前窗口的顶部创建一个全新的窗口。“
答案 5 :(得分:12)
我的理解是target = whatever
将查找具有该名称的框架/窗口。如果找不到,它将打开一个具有该名称的新窗口。如果whatever == "_new"
,它将显示为使用_blank
,除了.....
使用其中一个保留的目标名称将绕过“查找”阶段。因此,十几个链接上的target = "_blank"
会打开十几个空白窗口,但十几个链接上的target = whatever
只会打开一个窗口。十几个链接上的target = "_new"
可能会产生不稳定的行为。我没有在几个浏览器上试过它,但只应该打开一个窗口。
至少这是我解释规则的方式。
答案 6 :(得分:10)
target="_blank"
在大多数浏览器中都会打开一个新标签页。
答案 7 :(得分:8)
注意 - 请记住始终包含&#34;引号&#34; - 至少在Chrome上,target=_blank
(没有引号)与target="_blank"
(带引号)不一样。
后者在新标签/窗口中打开每个链接。前者(缺少引号)打开您在一个新选项卡/窗口中单击的第一个链接,然后用您单击的每个后续链接覆盖相同的选项卡/窗口(这些链接也用缺少的引号命名)。
答案 8 :(得分:5)
此外,点击目标值为_new的每个链接都将替换先前生成的窗口中加载的页面。
您可以点击此处When to use _blank or _new自行试用。
答案 9 :(得分:0)
链接的目标属性强制浏览器在新的浏览器窗口中打开目标页面。使用_blank
作为目标值将每次生成一个新窗口,而使用_new
只会生成一个新窗口,并且每个点击目标值为_new
的链接将替换加载的页面以前产生的窗口
答案 10 :(得分:0)
要在新标签/窗口中打开链接,您将使用<a target="_blank">
。
值_blank
=有针对性的浏览上下文:新的:标签或窗口,具体取决于您的浏览设置
值_new
=无效; HTML5中没有元素
目标属性及其在元素上的所有值:video demo
答案 11 :(得分:-1)
在处理Iframed的页面时,使用_New非常有用。由于target =“_ blank”不起作用并在同一iframe上打开页面... target new是iframe Pages的最佳解决方案。只是我的五美分。