我知道 _blank
在与锚标记一起使用时会打开一个新选项卡,而且,在使用框架集时我会使用自定义目标,但我想知道 _parent
之间的区别, _self
和 _top
。
原文由 Joseph Rex 发布,翻译遵循 CC BY-SA 4.0 许可协议
我知道 _blank
在与锚标记一起使用时会打开一个新选项卡,而且,在使用框架集时我会使用自定义目标,但我想知道 _parent
之间的区别, _self
和 _top
。
原文由 Joseph Rex 发布,翻译遵循 CC BY-SA 4.0 许可协议
下面是一张显示嵌套帧和不同目标值的效果的图像,后面是对图像的解释。
想象一个网页包含 3 个嵌套的 <iframe>
又名“框架”/“框架集”。所以:
然后目标属性有这些效果:
target="_self"
的链接,则链接以第 1 帧为目标(即链接 以包含链接的帧为 目标(即以自身为目标))target="_parent"
有链接,则链接指向框架 2(即链接指向 _父框架_)target="_top"
,链接指向初始网页(即链接指向 _最顶层/最外层框架_;(在这种情况下;链接跳过祖父框架 3))
target="_top"
,该链接 也 指向初始网页(即,链接再次指向 _最顶层/最外层框架_)target="_blank"
的链接,该链接的目标是 _辅助浏览上下文_,也就是 “新窗口”/“新标签”
target="_blank"
的情况下小心“tabnabbing”; 使用 rel="noopener"
属性原文由 bin 发布,翻译遵循 CC BY-SA 4.0 许可协议
2 回答1.5k 阅读✓ 已解决
2 回答902 阅读✓ 已解决
1 回答1.1k 阅读✓ 已解决
1 回答913 阅读✓ 已解决
2 回答792 阅读
1 回答786 阅读✓ 已解决
2 回答1.1k 阅读
虽然这些答案很好,但恕我直言,我认为它们并没有完全解决这个问题。
锚标记中的 target 属性告诉浏览器锚的目的地的目标。它们最初是为了操纵锚点并将其定向到文档框架系统而创建的。这是在 CSS 帮助 HTML 开发人员之前很久。
而
target="_self"
是浏览器的默认值,最常见的目标是target="_blank"
它在新窗口中打开锚点(通常已通过浏览器设置重定向到选项卡)。"_parent"
,"_top"
和framename
标签对于那些不熟悉网站构建的人来说是一个谜,因为 iframe 的时代趋势。target="_self"
这将在同一帧中打开一个锚点。令人困惑的是,因为我们通常不再在框架中编写(而且frame
和frameset
标签在 HTML5 中已过时)人们假设这是一个相同的窗口函数。相反,如果此锚点嵌套在框架中,它将以某种沙盒模式打开,这意味着仅在该框架中。target="_parent"
如果它们相互嵌套,将在框架的下一层打开target="_top"
这打破了它嵌套的所有框架之外,并在浏览器窗口中打开链接作为顶级文档。target="framename
这最初被弃用但在 HTML5 中恢复。这将针对有问题的确切框架。虽然name
是正确的方法,但该方法已被替换为使用id
标识标签。