什么之间的区别<a target="_new">
,并<a target="_blank">
和我应该使用如果我只是想打开一个新标签/窗口的链接?
_new
”没有任何特殊含义怎么弄错?
target="_blank"
no rel="noopener"
是潜在的安全漏洞。搜索rel="noopener"
以了解更多信息。
什么之间的区别<a target="_new">
,并<a target="_blank">
和我应该使用如果我只是想打开一个新标签/窗口的链接?
_new
”没有任何特殊含义怎么弄错?
target="_blank"
no rel="noopener"
是潜在的安全漏洞。搜索rel="noopener"
以了解更多信息。
Answers:
根据HTML5规范:
一个有效的浏览上下文名称是至少一个字符的任何字符串,它不与U + 005F低线字符开头。(以下划线开头的名称保留用于特殊关键字。)
一个有效的浏览上下文名称或关键字是一个有效的浏览上下文名称的任何字符串或者是一个一个ASCII不区分大小写的匹配:_blank,_self,_parent,_top或“ - 来源
这意味着_new
在HTML5中没有这样的关键字,在HTML4(因此也没有XHTML)中也没有。这意味着,如果将其用作目标属性的值,将不会有任何一致的行为。
正如丹尼尔(Daniel)和迈克尔(Michael)在评论中指出的那样,当使用_blank
指向不可信网站的目标时,还应该设置rel="noopener"
。这样可以防止打开站点通过JavaScript破坏打开器。有关更多信息,请参见此帖子。
valid browsing context name
或关键字是a valid browsing context name
或....的任何字符串”
使用target="_blank"
将指示浏览器在用户单击链接时创建新的浏览器选项卡或窗口。
target="_new"
根据规范,使用在技术上是无效的,但据我所知,每种浏览器的行为方式都相同:
注意的target="_new"
行为与完全相同target="new"
,后者是有效的HTML,而前者是无效的HTML。
更令人困惑的是,在HTML4中,该target
属性已被弃用。在HTML5中,此决定被撤销,并且再次成为规范的正式组成部分。target
无论您使用什么版本的HTML,所有浏览器都支持,但是如果您的文档类型是HTML4,则某些验证器会将其标记为已弃用。
target="_new"
,它们都将在同一选项卡中打开,一个覆盖另一个?
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
由于“ _new”不是“ framename”中的任何一种,因此,如果用户重新单击该超链接,它将不会打开新选项卡,而是会更新现有选项卡。而在_blank中,如果用户单击两次,则会打开2个新选项卡。
之前可能有人问过这个问题,但:
“指定target =“ _ new的每个链接”将查找并按名称查找该窗口,然后在其中打开。
如果使用target =“ _ blank”,则每次都会在当前窗口的顶部创建一个全新的窗口。
注意-切记始终包含“引号”-至少在Chrome上target=_blank
(不target="_blank"
带引号)与(带引号)不一样。
后者在新的标签/窗口中打开每个链接。前一个(缺少引号)在一个新的选项卡/窗口中打开您单击的第一个链接,然后用您单击的每个后续链接(也用缺失的引号命名)覆盖相同的选项卡/窗口。
同样,单击目标值为_new的每个链接都将替换先前生成的窗口中加载的页面。
您可以单击此处何时使用_blank或_new自己尝试一下。
_new
所描述的浏览器?
_new
不是一个神奇的关键字,它只是一个名称,如果存在具有该名称的窗口,它将重用它,否则它将打开它。单击该窗口的多个链接只会在命名窗口中打开不同的页面,而不是打开多个新页面。
ignore
目标是下划线,但不是关键字。对于“忽略”无效目标名称时浏览器应采取的措施,没有任何建议。可能的情况包括:(1)像“ _blank”一样对待它(2)像一个窗口名一样对待它(好像没有非法的下划线一样)(3)像一个明显的空窗口名一样对待它(4)像在那儿一样对待它没有目标属性。-任何浏览器都可以选择任何一种解释。
在iframe页面上使用_New很有用。由于target =“ _ blank”不能解决问题,而是在同一iframe上打开页面,因此target new是iframe页面的最佳解决方案。只是我的五分钱。
_new
没有任何特殊含义。您也可以写_white_little_lamb
。