[英]target=“_blank” vs. target=“_new”
<a target="_new">
和<a target="_blank">
之间有什么区别,如果我只想在新选项卡/窗口中打开链接,我应该使用哪个?
根据HTML5 规范:
有效的浏览上下文名称是包含至少一个不以 U+005F LOW LINE 字符开头的字符的任何字符串。 (以下划线开头的名称保留用于特殊关键字。)
有效的浏览上下文名称或关键字是任何字符串,它要么是有效的浏览上下文名称,要么是不区分大小写的 ASCII 匹配项:_blank、_self、_parent 或 _top。”- 来源
这意味着 HTML5 中没有_new
这样的关键字,HTML4(以及 XHTML)中也没有。 这意味着,如果您将其用作目标属性的值,则不会有任何一致的行为。
正如 Daniel 和 Michael 在评论中指出的那样,当使用 target _blank
指向不受信任的网站时,您还应该设置rel="noopener"
。 这可以防止打开站点通过 JavaScript 干扰打开程序。 有关更多信息,请参阅此帖子。
当用户单击链接时,使用target="_blank"
将指示浏览器创建一个新的浏览器选项卡或窗口。
根据规范,使用target="_new"
在技术上是无效的,但据我所知,每个浏览器的行为方式都是一样的:
注意target="_new"
行为与target="new"
完全相同,后者是有效的 HTML,而前者是无效的 HTML。
对此添加一些混淆,在 HTML4 中target
属性已被弃用。 在 HTML5 中,这个决定被颠倒了,它再次成为规范的官方部分。 无论您使用什么版本的 HTML,所有浏览器都支持target
,但如果您的 doctype 是 HTML4,一些验证器会将使用标记为已弃用。
TL; 博士
使用_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",则每次都会在当前窗口的顶部创建一个全新的窗口。
我的理解是target = whatever
将寻找具有该名称的框架/窗口。 如果未找到,它将打开一个具有该名称的新窗口。 如果whatever == "_new"
,它看起来就像你使用了_blank
除了.....
使用保留的目标名称之一将绕过“查找”阶段。 所以, target = "_blank"
在十几个链接上会打开一打空白窗口,但target = whatever
十几个链接上的target = whatever
内容只会打开一个窗口。 十几个链接上的target = "_new"
可能会产生不稳定的行为。 我还没有在几个浏览器上尝试过,但应该只打开一个窗口。
至少我是这样解释规则的。
target="_blank"
在大多数浏览器中打开一个新选项卡。
注意 - 请记住始终包含“引号” - 至少在 Chrome 上, target=_blank
(无引号)与target="_blank"
(带引号)不同。
后者在新选项卡/窗口中打开每个链接。 前者(缺少引号)打开您在一个新选项卡/窗口中单击的第一个链接,然后用您单击的每个后续链接(也用缺少的引号命名)覆盖同一个选项卡/窗口。
此外,目标值为 _new 的每个链接都将替换之前生成的窗口中加载的页面。
您可以单击此处何时使用 _blank 或 _new亲自尝试一下。
链接的目标属性强制浏览器在新的浏览器窗口中打开目标页面。 使用_blank
作为目标值,而每次使用产生一个新的窗口_new
只会产卵一个新窗口,用的目标值,点击每一个环节_new
将取代以前催生窗口中加载该页面
为了在新选项卡/窗口中打开链接,您将使用<a target="_blank">
。
value _blank
= 目标浏览上下文:一个新的:选项卡或窗口取决于您的浏览设置
值_new
= 无效; 元素上的目标属性在 HTML5 中没有这样的值
target 属性及其在元素上的所有值: 视频演示
在处理 Iframed 的页面时,使用 _New 很有用。 由于 target="_blank" 不能解决问题并在同一个 iframe 上打开页面...... target new 是 iframe 页面的最佳解决方案。 只有我的五美分。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.