web-dev-qa-db-ja.com

get parent.location.url-iframe-子から親へ

Iframe内に表示されるページを取得しました。

そのページ(子ページ)からjsでparent.location.urlを取得する必要があります。

両方のサイトは異なるドメインにあります。

私はしようとしています:

alert(parent.location.url)

しかし、私はこのエラーを受け取ります:

http:// parentdomain のプロパティLocation.URLを http:// childdomain から取得するための許可が拒否されました。

????出来ますか?

31
Carlos Castillo

これを試して:

var referrer = document.referrer;
alert(referrer);
72
GianFS

あなたがやろうとしていること自体は不可能です。親ページの子ページの呼び出しを制御できない場合。その場合、親ページのURLにgetステートメントを使用して子ページを呼び出すことができます。親ページが http://parentpage.com の場合、iFrameを呼び出す方法は次のとおりです。

<iframe src='http://childpage.com/?parent=http://parentpage.com' />

次に、参照を取得するために子ページで行う必要があるのは、文字列を取得することです

window.location.search //not sure of browser compatibility with this

その文字列から親ページを取得して、親ページのURLを抽出します。詳細をお伝えしますが、最初の質問についてはわかりません。

7

次のようなものを試しましたか:

alert(window.top.location.href);
4
PriorityMark

親ページとiframeが同じドメインにある場合、のみ動作します。同じドメイン上にない場合は、マディソンウィリアムズが提案したように、srcを介して場所を渡すことができます。

それがおそらく「許可が拒否されました...」という理由です。

2
JCOC611

次のように見つけることができ、すべてのブラウザーがサポートできるはずです。

query = window.parent.location.search.substring(1);

これで許可エラーが表示されることはありませんが、間違っている可能性があります。

2
Rob

postMessage を使用して、ウィンドウ間でデータをやり取りします。少し不格好ですが、ウィンドウがオリジン間で通信する場合に必要です。

1
bigmac

試してください:

var pathname = window.parent.location.href
1
Supratim