<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干扰打开器。更多信息请看这篇文章。

其他回答

以前可能有人问过这个问题,但是:

"每个指定target="_new"的链接都会根据名称查找并找到该窗口,并在其中打开。

如果你使用target="_blank ",每次都会在当前窗口的顶部创建一个全新的窗口。"

网址:http://thedesignspace.net/MT2archives/000316.html

使用“平等”

根据HTML5规范:

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

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

安全建议

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

注意-记得总是包括“引号”-至少在Chrome上,target=_blank(没有引号)与target="_blank"(有引号)是不一样的。

后者在一个新的选项卡/窗口中打开每个链接。前者(缺少引号)在一个新的选项卡/窗口中打开你点击的第一个链接,然后用你点击的每个后续链接覆盖相同的选项卡/窗口(也用缺少引号命名)。

这是我的理解,目标=任何将寻找一个框架/窗口与该名称。如果没有找到,它将打开一个带有该名称的新窗口。如果whatever == "_new",除了.....之外,它看起来就像你使用_blank一样

使用一个保留的目标名称将绕过“查找”阶段。因此,target = "_blank"在一打链接上将打开一打空白窗口,但target = whatever在一打链接上将只打开一个窗口。Target = "_new"在十几个链接上可能会给出不稳定的行为。我还没有尝试在几个浏览器,但应该只打开一个窗口。

至少我是这么理解规则的。

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