ホームページ >ウェブフロントエンド >jsチュートリアル >Web ページが iFrame またはブラウザ ウィンドウに読み込まれているかどうかを確認するにはどうすればよいですか?

Web ページが iFrame またはブラウザ ウィンドウに読み込まれているかどうかを確認するにはどうすればよいですか?

Barbara Streisand
Barbara Streisandオリジナル
2024-12-08 11:38:11168ブラウズ

How Can I Determine if a Webpage is Loaded in an iFrame or a Browser Window?

Web ページが iFrame またはブラウザ ウィンドウに読み込まれるかどうかを判断する

iframe ベースのアプリケーションを開発する場合、どちらかを区別する必要があります。 Web ページは iframe 内にロードされるか、ブラウザ ウィンドウに直接ロードされます。この理解により、さまざまなシナリオに合わせた機能が可能になります。

読み込みコンテキストの検出

承認されたアプローチには、window.self プロパティと window.top プロパティの利用が含まれます。

const inIframe = () => window.self !== window.top;

window.self は現在のウィンドウ オブジェクトを参照し、window.top はトップレベル ウィンドウを参照します。これら 2 つのオブジェクトが同一でない場合は、Web ページが iframe 内に読み込まれていることを示します。

ブラウザの互換性の指定

最近のブラウザでは、このメソッドが広くサポートされています。正確な iframe 検出が可能になります。ただし、セキュリティ制限により window.top へのアクセスがブロックされる可能性があるため、古いブラウザを扱う場合は注意が必要です。

代替アプローチ

ブラウザの不一致を考慮する、別のアプローチには、try-catch ブロックの使用が含まれます。

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

window.top へのアクセスが拒否された場合、catchブロックは例外をキャッチして true を返し、Web ページが iframe 内にロードされる可能性があることを示します。

以上がWeb ページが iFrame またはブラウザ ウィンドウに読み込まれているかどうかを確認するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。