想要了解iframe突破代码

时间:2013-01-09 03:34:45

标签: javascript iframe breakout

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

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

或者你保持原样,只需将其粘贴在页面的头部即可?我试图了解它是如何工作的。

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

1 个答案:

答案 0 :(得分:0)

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

这里有一些ASCII来帮助理解这个

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

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