私は iframe ベースの Facebook アプリを作成しています。今、同じ HTML ページを使用して、通常の Web サイトと Facebook 内のキャンバス ページをレンダリングしたいと考えています。ページが iframe 内に読み込まれたのか、それともブラウザに直接読み込まれたのかを判断できるかどうかを知りたいです。
ベストアンサー1
注意: ブラウザwindow.top
によっては、同一生成元ポリシーIEのバグも発生します。
動作するコードは次のとおりです:
function inIframe () {
try {
return window.self !== window.top;
} catch (e) {
return true;
}
}
top
とself
は両方ともwindow
オブジェクト ( と同様parent
) なので、ウィンドウが最上位のウィンドウであるかどうかを確認しています。