一尘不染

JavaScript如何识别网页是加载到iframe中还是直接加载到浏览器窗口中?

javascript

我正在写一个基于iframe的Facebook应用程序。现在,我想使用相同的html页面来呈现普通网站以及facebook中的画布页面。我想知道是否可以确定页面是否已在iframe中加载或直接在浏览器中加载?


阅读 258

收藏
2020-04-25

共1个答案

一尘不染

浏览器可能window.top由于相同的原始策略而阻止访问。IE错误也会发生。这是工作代码:

function inIframe () {
    try {
        return window.self !== window.top;
    } catch (e) {
        return true;
    }
}

topself都是window对象(以及parent),因此您正在查看窗口是否是顶部窗口。

2020-04-25