Iframe内に表示されるページを取得しました。
そのページ(子ページ)からjsでparent.location.urlを取得する必要があります。
両方のサイトは異なるドメインにあります。
私はしようとしています:
alert(parent.location.url)
しかし、私はこのエラーを受け取ります:
http:// parentdomain のプロパティLocation.URLを http:// childdomain から取得するための許可が拒否されました。
????出来ますか?
これを試して:
var referrer = document.referrer;
alert(referrer);
あなたがやろうとしていること自体は不可能です。親ページの子ページの呼び出しを制御できない場合。その場合、親ページの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を抽出します。詳細をお伝えしますが、最初の質問についてはわかりません。
次のようなものを試しましたか:
alert(window.top.location.href);
親ページとiframeが同じドメインにある場合、のみ動作します。同じドメイン上にない場合は、マディソンウィリアムズが提案したように、srcを介して場所を渡すことができます。
それがおそらく「許可が拒否されました...」という理由です。
次のように見つけることができ、すべてのブラウザーがサポートできるはずです。
query = window.parent.location.search.substring(1);
これで許可エラーが表示されることはありませんが、間違っている可能性があります。
postMessage を使用して、ウィンドウ間でデータをやり取りします。少し不格好ですが、ウィンドウがオリジン間で通信する場合に必要です。
試してください:
var pathname = window.parent.location.href