ウェブページが iframe 内に読み込まれているのか、それともブラウザウィンドウに直接読み込まれているのかを識別するにはどうすればよいでしょうか? 質問する

ウェブページが iframe 内に読み込まれているのか、それともブラウザウィンドウに直接読み込まれているのかを識別するにはどうすればよいでしょうか? 質問する

私は iframe ベースの Facebook アプリを作成しています。今、同じ HTML ページを使用して、通常の Web サイトと Facebook 内のキャンバス ページをレンダリングしたいと考えています。ページが iframe 内に読み込まれたのか、それともブラウザに直接読み込まれたのかを判断できるかどうかを知りたいです。

ベストアンサー1

注意: ブラウザwindow.topによっては、同一生成元ポリシーIEのバグも発生します。

動作するコードは次のとおりです:

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

topselfは両方ともwindowオブジェクト ( と同様parent) なので、ウィンドウが最上位のウィンドウであるかどうかを確認しています。

おすすめ記事