统计跨站情况下iframe嵌套的层数

发布于 2024-10-16 04:58:58 字数 67 浏览 5 评论 0原文

如果我的页面深埋了几个iframe,是否可以计算出我到底有多少层(跨域)?

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

If my page is buried several iframes deep, is it possible to count how many levels down I am (cross-domain)?

(I'm pretty sure the answer is "no".)

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

剩一世无双 2024-10-23 04:58:58

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

您可能会尝试类似的方法

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

,但我怀疑由于同源政策,您会因多个域而失败。

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

No, I'm almost certain there's no way to do that.

You might try something like

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

, but I suspect you will fail with multiple domains, due to same origin policy.

Might be worth a shot, though. Maybe access is blocked to document contents only, and not to window object.

金橙橙 2024-10-23 04:58:58

这不是级别数,但通过这种方式,您似乎可以识别您的内容是否已多次 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 进行测试

It's not the # of levels but in this way seems that you can identify if your content has been iframed more than once:

if (parent !== window) {
    //I'm iframed once for sure 
}
if (parent !== top) {
    //I'm iframed more than once
}

Tested with Chrome 59, Safari 10, Firefox 54, Edge 15, IE11

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文