Iframeから現在のURLを取得する簡単な方法はありますか?
視聴者は複数のサイトを通過します。私はJavaScriptで何かを使用していると推測しています。
セキュリティ上の理由から、iframeのコンテンツと参照JavaScriptが同じドメインから提供されている限り、URLを取得できます。それが真実である限り、このようなものは機能します:
document.getElementById("iframe_id").contentWindow.location.href
2つのドメインが一致しない場合、クロスサイトリファレンススクリプトのセキュリティ制限が発生します。
同様の質問への回答 も参照してください。
Iframeが別のドメイン(クロスドメイン)からのものである場合、他の答えは役に立ちません...これを使用するだけです:
var currentUrl = document.referrer;
そして-ここにメインのURLがあります!
これがあなたのケースで何らかの助けになることを願っています、私はまったく同じ問題に苦しみ、親ウィンドウとiframeの間でデータを共有するためにlocalstorageを使用しました。そのため、親ウィンドウでは次のことができます。
localStorage.setItem("url", myUrl);
そして、iframeソースがlocalstorageからこのデータを取得するコードでは:
localStorage.getItem('url');
時間を大幅に節約してくれました。私が見る限り、唯一の条件は親ページコードへのアクセスです。これが誰かを助けることを願っています。
Iframeコンテキストを使用している場合、
できます
const currentIframeHref = new URL(document.location.href);
const urlOrigin = currentIframeHref.Origin;
const urlFilePath = decodeURIComponent(currentIframeHref.pathname);
親ウィンドウ/フレームにいる場合は、 https://stackoverflow.com/a/938195/230524 の答えを使用できます。
document.getElementById("iframe_id").contentWindow.location.href