什么之间的区别<a target="_new">
,并<a target="_blank">
和我应该使用如果我只是想打开一个新标签/窗口的链接?
fre*_*oma 640
根据HTML5规范:
一个有效的浏览上下文名称是至少一个字符的任何字符串,它不与U + 005F低线字符开头.(以下划线开头的名称是为特殊关键字保留的.)
一个有效的浏览上下文名称或关键字是一个有效的浏览上下文名称或者是一个一个ASCII不区分大小写的匹配任何字符串:_blank,_self,_parent,_top或" - 来源
这意味着_new
HTML5中没有这样的关键字,也没有HTML4(以及XHTML).这意味着,如果将此值用作目标属性的值,则不会出现任何一致的行为.
正如丹尼尔和迈克尔在评论中指出的那样,当使用_blank
指向不受信任的网站的目标时,你应该另外设置rel="noopener"
.这可以防止开放网站通过JavaScript搞乱开场白.有关更多信息,请参阅此帖子.
Abh*_*ert 125
使用target="_blank"
将指示浏览器在用户单击链接时创建新的浏览器选项卡或窗口.
使用target="_new"
在技术上根据规范无效,但据我所知,每个浏览器的行为方式都相同:
注意target="_new"
将表现完全相同target="new"
,后者是有效的HTML,而前者是无效的HTML.
为此添加一些混淆,在HTML4中,该target
属性已被弃用.在HTML5中,这个决定被颠倒了,它再次成为规范的官方部分.target
无论您使用的是哪种版本的HTML,所有浏览器都支持,但如果您的doctype是HTML4,则某些验证程序会将使用标记为已弃用.
abe*_*312 25
TL; DR
USE _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
Run Code Online (Sandbox Code Playgroud)
由于"_new"不是任何这些IT将在"framename"下进行,因此如果用户重新点击该超链接,它将不会打开新选项卡而是更新现有选项卡.而在_blank中,如果用户点击两次,则打开2个新标签.
cor*_*ded 13
这可能是之前被问过但是:
"指定target ="_ new"的每个链接都会查找并按名称查找该窗口,并在其中打开.
如果你使用target ="_ blank",那么每次都会在当前窗口的顶部创建一个全新的窗口."
从这里:http://thedesignspace.net/MT2archives/000316.html
the*_*ter 12
我的理解是target = whatever
寻找具有该名称的框架/窗口.如果找不到,它将打开一个具有该名称的新窗口.如果whatever == "_new"
,它看起来就像你用过_blank
.....
使用其中一个保留的目标名称将绕过"查找"阶段.所以,target = "_blank"
在十几个链接上会打开十几个空白窗口,但target = whatever
十几个链接只会打开一个窗口.target = "_new"
在十几个链接上可能会给出不定的行为.我没有在几个浏览器上试过它,但应该只打开一个窗口.
至少这是我解释规则的方式.
注意 - 请记住始终包含"引号" - 至少在Chrome上,target=_blank
(没有引号)与target="_blank"
(引号)不一样.
后者在新的选项卡/窗口中打开每个链接.前者(缺少引号)打开您在一个新选项卡/窗口中单击的第一个链接,然后使用您单击的每个后续链接覆盖相同的选项卡/窗口(也使用缺少的引号命名).
此外,单击目标值_new的每个链接将替换先前生成的窗口中加载的页面.
您可以单击此处何时使用_blank或_new自行试用.