2011-12-23 13 views
3

私はいくつかのJavaScriptが含まれたWebページを持っており、別のWebサイトにiframeとして埋め込まれます。私はそれが実行されているWebサイトに応じて私のページの動作を調整する必要があります。この目的のために、私は私のページからtop.location.hrefを読み取ろうとしましたが、それはエラーが発生した:フレーム/ iframeから別のドメインのトップウインドウを取得

Unsafe JavaScript attempt to access frame with URL http://website.url from frame with URL http://mypage.url . Domains, protocols and ports must match.

はこれを回避行くにはいくつかの方法はありますか?

+0

いいえ、それは、任意のウェブサイトのためにことはできません。 –

+0

私は以下の回答を重複した質問に提供しました。http://stackoverflow.com/questions/4903351/getting-url-of-the-top-frame/19438476#19438476 – mcanfield

答えて

1

これは、発信元ポリシーが同じであり、セキュリティ上の理由から存在します。ユーザーのブラウザを変更することなく、その周りに方法はありません。

+0

その情報を入手してください。それでも、私は現代のブラウザがとても厳しい理由を理解しておらず、フレームがそのトップURLを読むのに有害であると考えています。 – etuardu

10

最も一般的なケースでは、実際にiframeの親URLを取得できます。 iframeの1つだけのレベルの深さである場合、このメソッドは動作します:

var parentURL = document.referrer

https://developer.mozilla.org/en-US/docs/Web/API/document.referrer

iframeのウィジェットを作成するときに、私はこの方法を使用しました。あなたがトップレベルのウィンドウの場所を必要とするがiframeの親ウィンドウではないことを覚えておいてください...あなたはそれを得ることができません。また、ウィジェットがiframe内をナビゲートすると、リファラーが変更されます。ニコラスZakasによって

さらに別の優れた書き込みアップは、ここで彼のブログで見ることができます: http://www.nczonline.net/blog/2013/04/16/getting-the-url-of-an-iframes-parent/

+0

なぜ賛成投票ですか?これはうまく機能し、他の人に知っておくと便利です。 – mcanfield

+0

編集:私はdownvoteをしなかったが、それは必ずしもあなたに最高の場所を与える必要はないので誰かがやった。しかし、良い情報ありがとう。 –

関連する問題