ページAはiframe Bを含み、Bはiframe Cを含み、AとBは同じドメインの下にあり、Cは別のドメインの下にあります。
Cは、フラグメントIDメッセージングを使用してクロスドメイン通信を解決するために、親Bの位置を "#"に続く追加情報でリセットしようとします。
Firefoxのブロックparent.locationエラーメッセージ[へのアクセスが拒否された "コード:" 1010]の場合、IE6/7/8はこのケースで正常に機能します。 しかし、Bがトップウインドウであれば、Aがないことを意味します.Firefoxも存続します。
私には奇妙なことです...皆さん、助けてくださいますか?
ありがとうございました!クロスドメインJavaScriptの親ロケーションの設定Firefoxのエラー
答えて
歴史的には、任意のウィンドウが他のウィンドウの位置を変更することができます。これは、とりわけ、ログインiframeをウィンドウに埋め込むことは安全ではないことを意味しています(悪意のあるサイトがログインiframeを詐称したバージョンに置き換える可能性があるため)。時間が経つにつれて、さらに制限が今、HTML5とほとんどのブラウザはthe ancestor policyに共通の合意に達したときまで、ブラウザウィンドウの位置の変更に適用されています。一言で言えば、HTML5仕様を言い換え、ウィンドウAが別のウィンドウBのIFFの位置を変更することができる:
- A及びBの位置は、それらが同じスキーム、ホストを持っていると言うことである同じ起源を有します(HTTP、stackoverflow.com、例えば80)、およびポート、または
- Bは、トップレベルのウィンドウであり、そしてAはB(直接の子、子の子、内にいくつかの深さでネストされたフレーム内のウィンドウでありますなど)、または
- Bは
window.open
を使用して開いたウィンドウで、AはBを開いたウィンドウの位置を変更できます(BはAによって開いたポップアップ、Aで開いたポップアップウィンドウ、またはより深いところです) 、または - Bトップレベルウィンドウではなく、その親ウィンドウ、又は親の親ウィンドウまたはそのウィンドウの親子関係のいくつかの類似の量での位置とA同一生成元である
(同じ起源上記よりも複雑ですが、上記の埋め込み説明はその本質を捉え、最も一般的なケースをカバーしています)。
このポリシーでは、CはAの場所を変更し、AはBまたはCの場所を変更することができますCはBの位置を変更しないことがあります。これを回避する必要がある場合は、ページAの位置をBを適切に変更するものに変更する必要があります。代わりに、あなたはask your page B to change its own locationでした。
必ずしも有用ではない場合うまくいけば、それは、有益です。ブラウザのセキュリティモデルは、そんなにとしてを設計されていないとだけHTML5における最近の研究で、を進化させ、それは本当に正確にこれらのクロスブラウザの不整合に対処するために釘付けされています。
IE7とIE8があなたのために働いていると私は驚いています。上記のポリシーは主にIE7の実装したポリシーに基づいています。
Cからあなたはwindow.top
を使用してBのウィンドウにアクセスすることができます。
てみてください、var B = window.top; B.location = "...";
Cのwindow.topを使用している場合、私はBではなくAを取得しましたが、Aの場所をリセットしたくありません... –
- 1. Firefox 5のクロスドメイン
- 2. クロスドメインiframeの問題(親の場所を設定)
- 3. クロスドメインのhtaccessの設定
- 4. 親のJavaScriptからのクロスドメインIFrame DOMプロパティへのアクセス
- 5. javascript - iframe内のクロスドメインの親要素にアクセスできない
- 6. クロスドメイン用のGoogleアプリケーションエンジンアプリケーションを設定する
- 7. JavaScriptのクロスドメイン認証
- 8. クロスドメインjavascript
- 9. Firefox WebExtensionsとクロスドメイン権限
- 10. FireFoxとGoogleChromeのSPNEGO設定
- 11. JavaScriptとクロスドメインiframeの操作
- 12. JavaScriptのクロスドメインiframe通信
- 13. (HTML/javascript)クロスドメインiframeの処理
- 14. GWTとサードパーティのクロスドメインJavaScript
- 15. Javascript/CSS:iframeのズームレベルを(firefox)に設定しますか?
- 16. Google oauth javascriptクロスドメイン
- 17. プロトタイプはJavaScriptのエラー(Firefox)をスワロー
- 18. リンクホバーでdivをスワップ - FirefoxでのJavascriptエラー
- 19. Flickr JSONがJavaScriptのクロスドメインでエラーを返す
- 20. クロスドメインXMLHTTPRequestエラー
- 21. ロケーションの設定を変更する - Androidチュートリアル
- 22. HTML Validatorの+設定ファイルのFirefoxアドオン
- 23. Firefoxアドオンでのユーザー設定の使用
- 24. Safari/Firefoxでクロスドメインを有効にする
- 25. Javascriptの設定フラグ
- 26. Firefoxエクステンションの設定ウィンドウonsynctopreferenceボタン
- 27. firefoxの言語設定方法は?
- 28. iframeから親ウィンドウにアクセスする(クロスドメイン)
- 29. 設定メッセージのエラー
- 30. Djangoの設定エラー
あなたの明確で美しい答えをありがとう、私はこれについて私のソリューションを再考します。 –
ありがとうございました。あなたがリンクしているwindow.postMessageはすべての最新のブラウザで動作しますが、IEの構文は少し異なります。私はこれに似た質問を投稿し、自分でそれに答えることになった。ここで私の答えは、単純なクロスブラウザの実装例があります:http://stackoverflow.com/questions/1860470/is-there-any-way-for-an-iframe-to-change-the-top-windows- url/1861054#1861054 – Kip