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

Javascript 计算跨站点情况下iframe嵌套的级别数,javascript,iframe,cross-domain,Javascript,Iframe,Cross Domain,如果我的页面埋在几个iFrame的深处,是否可以计算我的级别(跨域) (我很确定答案是“不”。不,我几乎肯定没有办法做到这一点 你可以试试类似的东西 var current = window; while (current.parent != current) { current = current.parent; } ,但我怀疑您将在多个域中失败,原因是 也许值得一试。可能只阻止了对文档内容的访问,而不阻止了对窗口对象的访问。这不是级别的问题,但通过这种方式,您似乎可以确定您的内容是

如果我的页面埋在几个iFrame的深处,是否可以计算我的级别(跨域)


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

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

你可以试试类似的东西

var current = window;
while (current.parent != current) {
    current = current.parent;
}
,但我怀疑您将在多个域中失败,原因是

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

这不是级别的问题,但通过这种方式,您似乎可以确定您的内容是否被多次格式化:

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

我尝试了一些类似的测试,用于
current==top
,结果是一个无限循环,由于'top'和
window.parent
是'undefined'。@sprugman window.top和window.parent不是
未定义的
-它们与parent只是同一个对象,如果不存在'real'父对象,top将指向
window
对象。从现在开始,你可以确定-绝对没有办法获得这些信息,正如你所说的,由于SOP。