什么之间的区别<a target="_new">
,并<a target="_blank">
和我应该使用如果我只是想打开一个新标签/窗口的链接?
target =“ _ blank”与target =“ _ new”
为了在新标签页/窗口中打开链接,您将使用<a target="_blank">
。
值_blank
=定向的浏览上下文:一个新的:根据您的浏览设置的选项卡或窗口
值_new
=无效;HTML5中元素上的target属性没有这样的值
目标属性及其在元素上的所有值:视频演示
链接的target属性强制浏览器在新的浏览器窗口中打开目标页面。使用_blank
作为目标值,将同时使用,每次产生一个新的窗口_new
将只产卵一个新窗口,用的目标值,点击每一个环节_new
将取代以前催生窗口中加载该页面
- _blank作为目标值每次都会产生一个新窗口,
- _new将仅产生一个新窗口。
同样,单击目标值为_new的每个链接都将替换先前生成的窗口中加载的页面。
您可以单击此处何时使用_blank或_new自己尝试一下。
注意-切记始终包含“引号”-至少在Chrome上target=_blank
(不target="_blank"
带引号)与(带引号)不一样。
后者在新的标签/窗口中打开每个链接。前一个(缺少引号)在一个新的选项卡/窗口中打开您单击的第一个链接,然后用您单击的每个后续链接(也用缺失的引号命名)覆盖相同的选项卡/窗口。
据我了解,target = whatever
它将查找具有该名称的框架/窗口。如果找不到,它将使用该名称打开一个新窗口。如果为whatever == "_new"
,则其显示方式与您使用过的_blank
除外.....
使用保留的目标名称之一将绕过“查找”阶段。因此,target = "_blank"
在十二个链接上将打开十二个空白窗口,但是target = whatever
在十二个链接上将仅打开一个空白窗口。target = "_new"
十几个链接上的链接可能会显示不稳定的行为。我没有在几种浏览器上尝试过,但只能打开一个窗口。
至少这就是我解释规则的方式。
target="_blank"
在大多数浏览器中打开一个新标签。
之前可能有人问过这个问题,但:
“指定target =“ _ new的每个链接”都会查找并按名称查找该窗口,然后在其中打开。
如果您使用target =“ _ blank”,则每次都会在当前窗口的顶部创建一个全新的窗口。
使用target="_blank"
将指示浏览器在用户单击链接时创建新的浏览器选项卡或窗口。
target="_new"
根据规范,使用从技术上讲是无效的,但据我所知,每个浏览器的行为都相同:
- 它将搜索上下文名称为“ _new”的标签或窗口
- 如果找到“ _new”标签/窗口,则将URL加载到其中
- 如果未找到,则使用上下文名称“ _new”创建一个新的选项卡/窗口,并将URL加载到其中
注意的target="_new"
行为与完全相同target="new"
,后者是有效的HTML,而前者是无效的HTML。
更令人困惑的是,在HTML4中,该target
属性已被弃用。在HTML5中,此决定被撤销,并且再次成为规范的正式组成部分。target
无论您使用什么版本的HTML,所有浏览器都支持,但是如果您的文档类型是HTML4,则某些验证程序会将使用情况标记为已弃用。
使用“ _blank”
根据HTML5规范:
一个有效的浏览上下文名称是至少一个字符的任何字符串,它不与U + 005F低线字符开头。(以下划线开头的名称保留用于特殊关键字。)
一个有效的浏览上下文名称或关键字是一个有效的浏览上下文名称的任何字符串或者是一个一个ASCII不区分大小写的匹配:_blank,_self,_parent,_top或“ - 来源
That means that there is no such keyword as _new
in HTML5, and not in HTML4 (and consequently XHTML) either. That means, that there will be no consistent behavior whatsoever if you use this as a value for the target attribute.
Security recommendation
As Daniel and Michael have pointed out in the comments, when using target _blank
pointing to an untrusted website, you should, in addition, set rel="noopener"
. This prevents the opening site to mess with the opener via JavaScript. See this post for more information.
在iframe页面上使用_New很有用。由于target =“ _ blank”不能解决问题,而是在同一iframe上打开页面,因此target new是iframe页面的最佳解决方案。只是我的五分钱。