<a target="_new">
”和“<a target="_blank">
”有什么区别,如果我只是想在新的标签页/窗口中打开链接,应该使用哪个?<a target="_new">
”和“<a target="_blank">
”有什么区别,如果我只是想在新的标签页/窗口中打开链接,应该使用哪个?根据 HTML5 规范:
有效的浏览上下文名称 是任何以不带 U+005F LOW LINE 字符开头并且至少有一个字符的字符串。(以下划线开头的名称为特殊关键字。)
有效的浏览上下文名称或关键字 是任何既是有效的浏览上下文名称,或者是 ASCII 不区分大小写匹配以下其中之一的字符串:_blank、_self、_parent 或 _top。" - 来源
这意味着,在 HTML5 中没有名为 _new
的关键字,并且HTML4(因此也包括 XHTML)中也没有该关键字。 这意味着,如果将其用作 target 属性的值,则不会有任何一致的行为。
正如 Daniel 和 Michael 在评论中指出的那样,当使用 target _blank
指向一个不受信任的网站时,您应该额外设置 rel="noopener"
。这可以防止打开的站点通过 JavaScript 干扰打开者。有关更多信息,请参见此文章。
使用target="_blank"
会指示浏览器在用户点击链接时创建一个新的浏览器标签页或窗口。
使用target="_new"
在技术上是无效的,但据我所知,每个浏览器都会以相同的方式处理:
请注意,target="_new"
与target="new"
的行为完全相同,而后者是有效的HTML,而前者是无效的HTML。
增加一些混淆的是,在HTML4中,target
属性已被弃用。在HTML5中,这个决定被撤销了,它再次成为规范的正式部分。所有浏览器都支持target
,无论您使用的HTML版本是什么,但某些验证器会在您的doctype为HTML4时标记使用为已弃用。
target="_new"
的链接,它们都会在同一个标签页中打开,其中一个会覆盖另一个? - art-solopov简而言之
使用_blank
目标属性指定了链接文档在哪里打开。
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
由于"_new"不是这些选项之一,因此它将被归类为"framename",所以如果用户重新点击该超链接,则不会打开新选项卡,而是更新现有选项卡。而在_blank中,如果用户点击两次,则会打开2个新的选项卡。
据我理解,target = whatever
将会查找具有该名称的框架/窗口。 如果未找到,则将打开具有该名称的新窗口。 如果 whatever == "_new"
,它将与使用 _blank
相同,除非......
使用其中一个保留的目标名称将绕过“查找”阶段。 因此,在十几个链接上使用 target = "_blank"
将打开十几个空白窗口,但是在十几个链接上使用 target = whatever
将只打开一个窗口。 在十几个链接上使用 target = "_new"
可能会导致不一致的行为。 我还没有在多个浏览器上尝试过它,但应该只会打开一个窗口。
至少这是我理解规则的方式。
target="_blank"
在大多数浏览器中会在新标签页中打开链接。
注意 - 记得始终包含“引号”- 至少在Chrome中,target=_blank
(无引号)与target="_blank"
(有引号)不同。
后者会在新的选项卡/窗口中打开每个链接。而前者(缺少引号)会在一个新的选项卡/窗口中打开您单击的第一个链接,然后用具有相同名称的每个后续链接覆盖同一选项卡/窗口(这也缺少引号)。
此外,每个带有_new目标值的链接将替换先前生成的窗口中加载的页面。
您可以单击此处了解何时使用_blank或_new并自行尝试。
_new
的描述吗? - Dima Tisnek<a target="_blank">
。_blank
=目标浏览上下文:一个新的选项卡或窗口,具体取决于您的浏览设置_new
=无效;HTML5中对元素的target属性没有这样的值
_new
没有任何特殊含义。你也可以写成_white_little_lamb
。 - Álvaro González_new
”没有任何特殊含义是错误的,这句话怎么解释呢? - Álvaro Gonzáleztarget="_blank"
而不添加rel="noopener"
是一种潜在的安全漏洞。搜索rel="noopener"
以了解更多信息。 - Flimm