3

iFrameを含むページがあります。親のURLを変更したいのですが。
現在、私はこのコードを使用しています:

window.parent.location.href = window.parent.location.href + '?myParam=myValue'  

IE 10では動作しますが、FirefoxやChromeでは動作しません。
Firefoxでは、次のエラーが発生します。

エラー:プロパティ'href'へのアクセスが許可されていません

ページとiFrameはホストを共有しますが、ポートが異なるため、同一生成元ポリシーに従って機能しません。
私の質問は、なぜそれがIEで機能するのか、そして他のブラウザーで機能させるために何をすべきかということです。

編集:以下は問題なく機能します:

window.parent.location.href = 'addressGoesHere.com?myParam=myValue';  

MozillaFirefoxで。

4

1 に答える 1

2

これを試して

window.parent.location='?myParam=myValue';

私が試したところ、別の場所から直接(値を取得)または間接的に(相対的な場所を設定することで、ページ設定場所に対して相対的なものになります)、ドキュメントの場所にアクセスすることはできません。唯一の例外は、ハッシュの設定です(#123) )。

だから実際の答え:

基準を満たしていないため、IEで動作します

そして第二の部分-絶対に方法はありません。クロスドメインのポストメッセージ( http://html5demos.com/postmessage2 )を使用したり、http: //easyxdm.net/wpなどの他のクロスドメインの通信方法を使用したりするなど、さまざまな通信方法を試す必要があります

于 2013-03-26T10:22:21.067 に答える