【问题标题】:Difference between _self, _top, and _parent in the anchor tag target attribute锚标记目标属性中_self、_top和_parent之间的区别
【发布时间】:2013-08-30 11:25:03
【问题描述】:

我知道_blank 与锚标记一起使用时会打开一个新选项卡,而且我在使用框架集时会使用自定义目标,但我想知道_parent_self 和 @ 之间的区别987654324@.

【问题讨论】:

    标签: html hyperlink anchor


    【解决方案1】:

    HTML 4.01 规范中的6.16 Frame target names 部分定义了含义,但部分内容已过时。它指的是“窗口”,而 HTML5 草案更实际地谈论“浏览上下文”,因为现代浏览器在这种情况下经常使用选项卡而不是窗口。

    简而言之,_self 是默认设置(当前浏览上下文,即当前窗口或选项卡),因此仅覆盖<base target=...> 设置才有用。值_parent 指的是当前框架的父框架集,而_top“跳出所有框架”并在整个浏览器窗口中打开链接的文档。

    【讨论】:

    【解决方案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" 这会在同一帧中打开一个锚点。令人困惑的是,因为我们通常不再在框架中写入(并且 frameframeset 标记在 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 个嵌套的 &lt;iframe&gt; aka "frame"/"frameset"。所以:

    • 最外层的网页/浏览器是起始上下文
    • 最外面的网页是第 3 帧的父页面
    • 第 3 帧是第 2 帧的父帧
    • 第 2 帧是第 1 帧的父帧
    • 第 1 帧是最里面的帧

    那么目标属性有这些作用:

    • 如果框架 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,你对我在解释中使用的语言满意吗? (我认为解释有助于可访问性(即视障用户)、翻译成其他语言、搜索引擎等)谢谢。
    猜你喜欢
    • 2016-09-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-05-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多