【发布时间】:2011-02-04 17:02:27
【问题描述】:
如果我的页面被深埋了几个 iframe,是否可以计算我向下的层数(跨域)?
(我很确定答案是否定的。)
【问题讨论】:
标签: javascript iframe cross-domain
如果我的页面被深埋了几个 iframe,是否可以计算我向下的层数(跨域)?
(我很确定答案是否定的。)
【问题讨论】:
标签: javascript iframe cross-domain
不,我几乎可以肯定没有办法做到这一点。
你可以试试
var current = window;
while (current.parent != current) {
current = current.parent;
}
,但我怀疑由于same origin policy,您会因多个域而失败。
不过,可能值得一试。也许访问被阻止只访问文档内容,而不是窗口对象。
【讨论】:
window.parent 是'undefined`。
undefined - 它们只是与父对象相同的对象,如果不存在“真正的”父对象,top 将指向 window 对象。
这不是关卡的数量,但通过这种方式,您似乎可以识别您的内容是否被 iframe 多次:
if (parent !== window) {
//I'm iframed once for sure
}
if (parent !== top) {
//I'm iframed more than once
}
通过 Chrome 59、Safari 10、Firefox 54、Edge 15、IE11 测试
【讨论】: