关于 window.top.Location 对象的跨域策略中有一个非常特殊的边缘案例......
假设我有 IFrame A ,在域 www.bbb.com 中,位于域 www.aaa.com 的页面内。
IFrame 内的页面可以:
- 将 window.top.location 与 window.location 进行比较(以检测它是否被框起来)
- 调用 window.top.location.replace(window.location) 重定向到自己
- 调用 window.top.location.replace("any任意字符串") 重定向到其他地方
但它不能:
- 警报、Document.Write 或执行任何类型的 window.top.location.href 输出
- 将它连接到任何其他变量中,或以任何有用的方式使用它
- 调用 window.top.location.reload()
这些只是我能很快找到的。我敢肯定还有其他边缘情况。
如果顶部位于另一个域中,浏览器似乎不允许使用 top.location 对象,除了一些列入白名单的东西......
这在任何地方都有记录吗?
我能找到这些列入白名单的东西吗?
这是在 HTML 标准中,并且在所有浏览器中都同样实现了吗?还是这个半随机的执行?