ホームページ >ウェブフロントエンド >jsチュートリアル >私の Web ページは直接ロードされますか、それとも iFrame 内にロードされますか?

私の Web ページは直接ロードされますか、それとも iFrame 内にロードされますか?

Mary-Kate Olsen
Mary-Kate Olsenオリジナル
2024-12-14 08:54:12164ブラウズ

Is My Webpage Loaded Directly or Inside an iFrame?

iFrame とページの直接読み込みの識別

Web 開発では、Web ページが iFrame 内に読み込まれるのか、それともブラウザ ウィンドウに直接読み込まれるのかを判断する必要がある場合があります。 。この違いは、Web ページの動作と機能に影響を与える可能性があります。

この違いを識別する 1 つの方法は、window.self オブジェクトと window.top オブジェクトを比較することです。ブラウザ ウィンドウに直接読み込まれた Web ページでは、これら 2 つのオブジェクトは同じウィンドウ オブジェクトを参照します。ただし、iframe 内にロードされると、window.self は iframe ウィンドウを参照し、window.top は親ウィンドウを参照します。

これを確実な方法で確認するには、次のコードを使用できます。

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

ただし、このアプローチはほとんどのブラウザーで信頼できるにもかかわらず、特に Internet Explorer ではクロスオリジン制限の影響を受ける可能性があることに注意することが重要です。したがって、潜在的なエラーを慎重に処理することが重要です。

Update (2024):

クロスオリジン スクリプト API アクセスに関するドキュメントによると、window.self および window .top は、許容されるクロスオリジン プロパティに含まれます。これは、次のコードが iFrame を検出するためのより一貫性と信頼性の高い方法を提供する必要があることを示唆しています:

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

以上が私の Web ページは直接ロードされますか、それとも iFrame 内にロードされますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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