锚标记目标属性中_self、_top和_parent之间的区别
Posted
技术标签:
【中文标题】锚标记目标属性中_self、_top和_parent之间的区别【英文标题】:Difference between _self, _top, and _parent in the anchor tag target attribute 【发布时间】:2013-08-30 11:25:03 【问题描述】:我知道_blank
与锚标记一起使用时会打开一个新选项卡,而且我在使用框架集时会使用自定义目标,但我想知道_parent
、_self
和 @ 之间的区别987654324@.
【问题讨论】:
【参考方案1】:html 4.01 规范中的6.16 Frame target names 部分定义了含义,但部分内容已过时。它指的是“窗口”,而 HTML5 草案更实际地谈论“浏览上下文”,因为现代浏览器在这种情况下经常使用选项卡而不是窗口。
简而言之,_self
是默认设置(当前浏览上下文,即当前窗口或选项卡),因此仅覆盖<base target=...>
设置才有用。值_parent
指的是当前框架的父框架集,而_top
“跳出所有框架”并在整个浏览器窗口中打开链接的文档。
【讨论】:
这是target
的 HTML5 草稿的链接:w3.org/TR/html-markup/a.html#a.attrs.target。【参考方案2】:
target="_blank"
打开一个新窗口并显示相关数据。
target="_self"
在同一个框架中打开窗口,表示已经存在的窗口本身。
target="_top"
在整个窗口中打开链接的文档。
target="_parent"
以父窗口大小打开数据。
【讨论】:
“全身”是什么意思? @robsch 看到詹姆斯约翰逊的回答 那么target="_main"
属性讲的是什么?【参考方案3】:
虽然这些答案很好,但恕我直言,我认为它们并没有完全解决这个问题。
锚标记中的目标属性告诉浏览器锚的目的地的目标。它们最初是为了操纵和引导锚点到文档的框架系统而创建的。这是在 CSS 帮助 HTML 开发人员之前。
虽然target="_self"
是浏览器的默认设置,最常见的目标是target="_blank"
,它在新窗口中打开锚点(通常通过浏览器设置重定向到选项卡)。 "_parent"
、"_top"
和 framename
标签对于那些不熟悉 iframe 网站建设时代的人来说是个谜。
target="_self"
这会在同一帧中打开一个锚点。令人困惑的是,因为我们通常不再在框架中写入(并且 frame
和 frameset
标记在 HTML5 中已过时),人们认为这是一个相同的窗口函数。相反,如果此锚点嵌套在框架中,它将以某种沙盒模式打开,这意味着仅在该框架中。
target="_parent"
如果它们相互嵌套,则会在框架的下一级打开
target="_top"
这会在它嵌套的所有框架之外中断,并在浏览器窗口中将链接作为顶部文档打开。
target="framename
这最初已被弃用,但在 HTML5 中重新出现。这将针对有问题的确切框架。虽然name
是正确的方法,但该方法已被使用id
标识标签替换。
<!--Example:-->
<html>
<head>
</head>
<body>
<iframe src="url1" name="A"><p> This my first iframe</p></iframe>
<iframe src="url2" name="B"><p> This my second iframe</p></iframe>
<iframe src="url3" name="C"><p> This my third iframe</p></iframe>
<a href="url4" target="B"></a>
</body>
</html>
【讨论】:
太棒了。我想回到 iframe 框架。【参考方案4】:这里是一个不同的Anchor标签的实际例子
Target Attribute
【讨论】:
请将链接文章的相关部分复制到 SO 以供后代使用。 仅链接响应不被视为 SO 上的答案。因为这是一个有用的评论的一个很好的例子。要被视为答案,您需要将链接页面中的相关信息直接嵌入到您的帖子中。有关详细信息,请参阅 SO 帮助页面。 链接失效了! @RevnicRobert-Nick 已恢复链接【参考方案5】:下图显示了嵌套帧和不同目标值的效果,后面是对图像的解释。
想象一个网页包含 3 个嵌套的 <iframe>
aka "frame"/"frameset"。所以:
那么目标属性有这些作用:
如果框架 1 具有target="_self"
链接,则链接以框架 1 为目标(即链接以包含链接的框架为目标(即以自身为目标))
如果框架 1 具有 target="_parent"
链接,则链接以框架 2 为目标(即链接以父框架为目标)
如果框架 1 有一个链接target="_top"
,则链接指向初始网页(即链接指向最顶部/最外层的框架;(在这种情况下;链接跳过祖父框架 3))
如果框架 2 有一个 target="_top"
链接,则该链接也指向初始网页(即再次,该链接指向最顶层/最外层框架)
如果这些框架中的任何一个有一个与target="_blank"
的链接,该链接的目标是一个辅助浏览上下文,也就是一个 “新窗口”/“新标签”
这适用于第 3 帧、第 2 帧、第 1 帧和最外面的网页。在target="_blank"
的情况下小心“tabnabbing”; use the rel="noopener"
attribute
【讨论】:
请解释您的“答案”。这张图片本身并不清楚。 如果我错了,请纠正我。这是我查看图像时的理解: 1. _parent - 单击时在第 2 帧中打开第 1 帧中的链接。 2. _self - 单击时在第 1 帧中打开第 1 帧中的链接。 3. _blank - 任何链接都将在单击时在新选项卡中打开,无论它实际位于哪个框架中,即使它位于嵌套 iframe 中也是如此。 4. _top - 链接将在单击时在当前选项卡中打开,无论它实际位于哪个框架中,即使它位于嵌套 iframe 中。 嗨,@SherylHohman,我试图为图像添加解释。嗨,Binaya,你对我在解释中使用的语言满意吗? (我认为解释有助于可访问性(即视障用户)、翻译成其他语言、搜索引擎等)谢谢。以上是关于锚标记目标属性中_self、_top和_parent之间的区别的主要内容,如果未能解决你的问题,请参考以下文章
Web前端面试题第六道—链接标记target与Dom,Bom
html中target四种选择_blank_parent_self_top,分别是什么意思?
html中target四种选择_blank_parent_self_top,分别是什么意思?