目标=“_blank"与目标=“_new"

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

576323 次浏览

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

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

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

从这里:http://thedesignspace.net/MT2archives/000316.html

使用“_blank"

根据HTML5规范:

有效的浏览上下文名称是任何至少有一个字符不是以U+005F LOW LINE字符开头的字符串。(以下划线开头的名称仅用于特殊关键字。)

有效的浏览上下文名称或关键字是任何字符串,它要么是一个有效的浏览上下文名称,要么是_blank, _self, _parent或_top."的ASCII不区分大小写匹配项。- # EYZ1

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

安全建议

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

target="_blank"在大多数浏览器中打开一个新选项卡。

使用target="_blank"将指示浏览器在用户单击链接时创建一个新的浏览器选项卡或窗口。

根据规范,使用target="_new"在技术上是无效的,但据我所知,每个浏览器都会以相同的方式运行:

  • 它将搜索上下文名为"_new"的选项卡或窗口
  • 如果找到一个“_new”选项卡/窗口,那么URL会被加载进去
  • 如果没有找到,则创建一个新的选项卡/窗口,上下文名为“_new”,并将URL加载到其中

注意target="_new"的行为与target="new"完全相同,后者是有效的HTML,而前者是无效的HTML。

更令人困惑的是,在HTML4中target属性被弃用了。在HTML5中,这个决定被推翻了,它再次成为规范的正式组成部分。所有浏览器都支持target,无论您使用的是什么版本的HTML,但如果您的文档类型是HTML4,一些验证器将标记为不赞成使用。

链接的目标属性强制浏览器在新的浏览器窗口中打开目标页面。使用_blank作为目标值将每次生成一个新窗口,而使用_new将只生成一个新窗口,并且每个点击目标值为_new的链接将替换先前生成窗口中加载的页面

这是我的理解,target = whatever将寻找一个框架/窗口与此名称。如果没有找到,它将打开一个带有该名称的新窗口。如果使用whatever == "_new",除了.....之外,它将显示与使用_blank一样

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

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

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

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

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

为了在新选项卡/窗口中打开一个链接,您将使用<a target="_blank">

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

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

target属性及其所有值:视频演示

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

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

< em > TL,博士
使用平等< / >强

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个新选项卡。

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

我知道这是一个老问题,正确的答案,使用_blank,已经提到了几次,但是使用<a target="somesite.com" target="_blank">Link</a> 存在安全风险

它是推荐 (性能优势)使用:

<a href="somesite.com" target="_blank" rel="noopener noreferrer">Link</a>