<a target="_new">和<a target="_blank">之间的区别是什么?如果我只想在一个新的选项卡/窗口中打开一个链接,我应该使用哪个?


当前回答

使用“平等”

根据HTML5规范:

有效的浏览上下文名称是任何至少有一个字符不是以U+005F LOW LINE字符开头的字符串。(以下划线开头的名称仅用于特殊关键字。) 有效的浏览上下文名称或关键字是任何字符串,该字符串要么是有效的浏览上下文名称,要么是_blank、_self、_parent或_top的ASCII大小写不敏感匹配项。”——源

这意味着在HTML5中没有_new这样的关键字,在HTML4(因此XHTML)中也没有。这意味着,如果将此作为目标属性的值,将不会有一致的行为。

安全建议

正如Daniel和Michael在评论中指出的,当使用targe_blank指向一个不可信的网站时,你应该另外设置rel="noopener"。这可以防止打开站点通过JavaScript干扰打开器。更多信息请看这篇文章。

其他回答

_blank作为目标值将每次生成一个新窗口, _new只会生成一个新窗口。

而且,每个目标值为_new的点击链接都将替换之前生成窗口中加载的页面。

您可以点击这里何时使用_blank或_new来自己尝试一下。

为了在一个新的标签/窗口中打开一个链接,你将使用<a target="_blank">。

值_blank =目标浏览上下文:一个新的:选项卡或窗口取决于您的浏览设置

值_new =无效;在HTML5中,元素的target属性没有这样的值

目标属性及其所有值:video demo

Target ="_blank"在大多数浏览器中打开一个新标签。

使用“平等”

根据HTML5规范:

有效的浏览上下文名称是任何至少有一个字符不是以U+005F LOW LINE字符开头的字符串。(以下划线开头的名称仅用于特殊关键字。) 有效的浏览上下文名称或关键字是任何字符串,该字符串要么是有效的浏览上下文名称,要么是_blank、_self、_parent或_top的ASCII大小写不敏感匹配项。”——源

这意味着在HTML5中没有_new这样的关键字,在HTML4(因此XHTML)中也没有。这意味着,如果将此作为目标属性的值,将不会有一致的行为。

安全建议

正如Daniel和Michael在评论中指出的,当使用targe_blank指向一个不可信的网站时,你应该另外设置rel="noopener"。这可以防止打开站点通过JavaScript干扰打开器。更多信息请看这篇文章。

在使用iframe的页面时,使用_New非常有用。由于target="_blank"没有做到这一点,并在相同的iframe上打开页面…target new是Iframe页面的最佳解决方案。这只是我的小意思。