javascript - 想了解iframe突破代码

标签 javascript iframe breakout

将此脚本代码(如下)置于 head 标记之间,我被告知这将不允许页面加载到 iframe 中。

如果这是正确的,是否需要用我的自定义 URL 或此代码中的类似内容替换任何内容(例如,top.location 应该是 top.myurl )?

还是保持原样,将其粘贴到页面的头部?我试图了解这是如何工作的。

if (top.location!= self.location) {
  top.location = self.location.href
}

最佳答案

如果将此代码放置在 iframe 中引用的 HTML 中,该代码将起作用。它的工作方式是查看 top(您请求的包含 iframe 的页面)和 self iframe 内的页面。如果有不同,则它会更改 top.location 以匹配 iframe 的 URL。

这是一些有助于理解的 ASCII

|----[OuterPage.html]------|
|                          |
|    |--[InnerPage.html]-| |
|    |                   | |
|    | top !== self      | |
|    |                   | |
|    |-------------------| |
|                          |
| top === self             |
|                          |
|--------------------------|

如果您单独请求 InnerPage.html(而不是在 iframe 中),则 top === self 将评估为 true,但是如果您在 iframe 中请求相同的页面,则相同的条件将评估为假。

关于javascript - 想了解iframe突破代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14227895/

相关文章:

javascript - 创建一个 iframe 并将其附加到所有现有目标 div 并填充 src 属性

java - 斯坦福大学 cs106a - 突破练习

javascript - 如何从对象数组中获取键和每个键的计数

javascript - 在div中获取具有相同类名的div

html - 在单个网页上的iframe中单击即可播放youtube视频

javascript - 创建一个 iframe 然后使用 jQuery 将数据附加到它

Java:突破游戏,滑动时移动玩家?

java - java中将对象赋值给变量

javascript - 如何在 Highcharts 中绘制重叠和不重叠的多个线段?

javascript - JQuery 单击输入按钮未触发