ホームページ  >  記事  >  ウェブフロントエンド  >  別のサブドメインの iFrame から親ページの URL を取得するにはどうすればよいですか?

別のサブドメインの iFrame から親ページの URL を取得するにはどうすればよいですか?

Mary-Kate Olsen
Mary-Kate Olsenオリジナル
2024-11-15 22:06:02839ブラウズ

How Can I Get the Parent Page's URL from an iFrame on a Different Subdomain?

iFrame からの親 URL へのアクセス: 制限事項と回避策

iFrame から親フレームの URL にアクセスすることは、特に次の場合に困難になることがあります。 iFrame は別のサブドメインにあります。これは、クロスサイト スクリプティング (XSS) 防止策によって課されたセキュリティ制限によるものです。

親フレームと同じドメインおよびサブドメインから iFrame にアクセスする場合、親の場所へのアクセスは、parent のような式を使用して簡単に行うことができます。 .document.location またはparent.window.location。ただし、ユーザーが強調したように、iFrame が別のサブドメインにある場合、このアプローチは失敗します。

この点をさらに説明するために、pageA.html が http://www.mysite でホストされている例を考えてみましょう。 .com/ および pageB.html (iFrame) は http://qa-www.mysite.com/ でホストされています。 pageB.html から親の URL を取得しようとすると、アクセス拒否エラーが発生します。これは、サブドメインもクロスサイト スクリプティングの制限の対象であることを確認します。

このような状況では親の URL に直接アクセスすることは禁止されていますが、利用できる回避策があります。親フレームの URL を取得するには、次の JavaScript コードを使用できます。

var url = (window.location != window.parent.location)
            ? document.referrer
            : document.location.href;

注:

  • window.parent.location は、 href プロパティ (window.parent.location.href) へのアクセスによって発生するセキュリティ エラー。
  • document.referrer は、iFrame にリンクされているページの URI を参照します。 iFrame の場所が別のソースによって決定されている場合、これは含まれているドキュメントを返さない可能性があります。
  • document.location はドキュメントの URL (この場合は iFrame) を指します。 window.location と window.parent.location が同一の場合、iFrame の href は親の href と同じになります。

以上が別のサブドメインの iFrame から親ページの URL を取得するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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