【发布时间】:2013-08-30 11:25:03
【问题描述】:
我知道_blank 与锚标记一起使用时会打开一个新选项卡,而且我在使用框架集时会使用自定义目标,但我想知道_parent、_self 和 @ 之间的区别987654324@.
【问题讨论】:
我知道_blank 与锚标记一起使用时会打开一个新选项卡,而且我在使用框架集时会使用自定义目标,但我想知道_parent、_self 和 @ 之间的区别987654324@.
【问题讨论】:
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。
target="_blank"
打开一个新窗口并显示相关数据。
target="_self"
在同一个框架中打开窗口,表示已经存在的窗口本身。
target="_top"
在整个窗口中打开链接的文档。
target="_parent"
以父窗口大小打开数据。
【讨论】:
target="_main"属性讲的是什么?
虽然这些答案很好,但恕我直言,我认为它们并没有完全解决这个问题。
锚标记中的目标属性告诉浏览器锚的目的地的目标。它们最初是为了操纵和引导锚点到文档的框架系统而创建的。这是在 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>
【讨论】:
这里是一个不同的Anchor标签的实际例子
【讨论】:
下图显示了嵌套帧和不同目标值的效果,后面是对图像的解释。
想象一个网页包含 3 个嵌套的 <iframe> aka "frame"/"frameset"。所以:
那么目标属性有这些作用:
target="_self" 链接,则链接以框架 1 为目标(即链接以包含链接的框架为目标(即以自身为目标))
target="_parent" 链接,则链接以框架 2 为目标(即链接以父框架为目标)target="_top",则链接指向初始网页(即链接指向最顶部/最外层的框架;(在这种情况下;链接跳过祖父框架 3))
target="_top" 链接,则该链接也指向初始网页(即再次,该链接指向最顶层/最外层框架)target="_blank"的链接,该链接的目标是一个辅助浏览上下文,也就是一个 “新窗口”/“新标签”
target="_blank" 的情况下小心“tabnabbing”; use the rel="noopener" attribute
【讨论】: