alert(document.getElementById('external-site').contentWindow.location.href);
こんにちは、このコードはChromeで機能し、「未定義」と表示されますが、Mozilla Firefox ではエラーが表示されます。
エラー: プロパティ 'href' へのアクセスが拒否されました
alert(document.getElementById('external-site').contentWindow.location.href);
こんにちは、このコードはChromeで機能し、「未定義」と表示されますが、Mozilla Firefox ではエラーが表示されます。
エラー: プロパティ 'href' へのアクセスが拒否されました
別のドメインからページをロードしている iframe を参照している場合document.getElementById('external-site')
、firefox でエラーが発生し、オブジェクトsame-origin policy
にアクセスできませんwindow.location
MDNから:
同じオリジン ポリシーは、あるオリジンから読み込まれたドキュメントまたはスクリプトが、別のオリジンからドキュメントのプロパティを取得または設定することを防ぎます。このポリシーは、Netscape Navigator 2.0 までさかのぼります。
あなたがしたいのは、それが外部であるかどうかを「チェック」することだけなので、エラーをキャッチしてみませんか? FFとChromeで動作するようです。jsFiddleを参照してください。
try {
alert(document.getElementById('external-site').contentWindow.location.href);
}
catch (err) {
alert("undefined");
}