计算跨站点情况下iframe嵌套的级别数

时间:2011-02-04 17:02:28

标签: javascript iframe cross-domain

如果我的网页深埋了几个iframe,是否有可能计算出我有多少级别(跨域)?

(我很确定答案是“不”。)

2 个答案:

答案 0 :(得分:3)

不,我几乎可以肯定没有办法做到这一点。

您可以尝试类似

的内容
var current = window;
while (current.parent != current) {
    current = current.parent;
}

,但由于same origin policy,我怀疑您将因多个域而失败。

但是,可能值得一试。也许访问被阻止只是文档内容,而不是窗口对象。

答案 1 :(得分:1)

这不是级别的#,但通过这种方式,您可以确定您的内容是否已被多次ifra:

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进行测试