2
alert(document.getElementById('external-site').contentWindow.location.href);

こんにちは、このコードはChromeで機能し、「未定義」と表示されますが、Mozilla Firefox ではエラーが表示されます。

エラー: プロパティ 'href' へのアクセスが拒否されました

4

3 に答える 3

2

別のドメインからページをロードしている iframe を参照している場合document.getElementById('external-site')、firefox でエラーが発生し、オブジェクトsame-origin policyにアクセスできませんwindow.location

MDNから:

同じオリジン ポリシーは、あるオリジンから読み込まれたドキュメントまたはスクリプトが、別のオリジンからドキュメントのプロパティを取得または設定することを防ぎます。このポリシーは、Netscape Navigator 2.0 までさかのぼります。

于 2012-05-30T07:16:42.980 に答える
0

あなたがしたいのは、それが外部であるかどうかを「チェック」することだけなので、エラーをキャッチしてみませんか? FFとChromeで動作するようです。jsFiddleを参照してください。

try {
    alert(document.getElementById('external-site').contentWindow.location.href);
}
catch (err) {
    alert("undefined");
}
于 2012-05-30T13:52:47.423 に答える