1. ホーム
  2. javascript

[解決済み] ウェブページがiframe内に読み込まれているのか、それともブラウザのウィンドウに直接読み込まれているのかを識別するにはどうしたらよいですか?

2022-03-14 09:31:43

質問

私はiframeベースのfacebookアプリを書いています。現在、同じ html ページを使用して、通常のウェブサイトと facebook 内のキャンバス ページをレンダリングしたいと考えています。ページがiframe内に読み込まれたのか、それともブラウザに直接読み込まれたのかを判断することができるでしょうか?

解決方法は?

ブラウザは、以下のアクセスをブロックすることができます。 window.top により 同一生成元ポリシー . IEのバグも発生する。以下は動作するコードです。

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

topself はいずれも window オブジェクトを作成します。 parent )なので、自分のウィンドウがトップウィンドウかどうかを見ているのです。