window.top.Locationオブジェクトに関するクロスドメインポリシーには、非常に特殊なエッジケースがあります。
ドメインwww.bbb.comにIFrameAがあり、ドメインwww.aaa.comのページ内に住んでいるとします。
IFrame内のページは次のことができます。
- window.top.locationをwindow.locationと比較します(フレーム化されているかどうかを検出するため)
- window.top.location.replace(window.location)を呼び出して、自分自身にリダイレクトします
- window.top.location.replace( "任意の文字列")を呼び出して、別の場所にリダイレクトします
しかし、それはできません:
- Alert、Document.Write、またはwindow.top.location.hrefの任意の種類の出力を実行します
- 他の変数に連結するか、便利な方法で使用してください
- window.top.location.reload()を呼び出します
これらは私がすぐに見つけることができたものです。他にもエッジケースがあると思います。トップが別のドメインにある場合、いくつかのホワイトリストに登録されているものを除い
て
、ブラウザはtop.locationオブジェクトの使用を許可していないようです...
これはどこかに文書化されていますか?
これらのホワイトリストに登録されているものを見つけることができますか?
これはHTML標準であり、すべてのブラウザーで等しく実装されていますか?それとも、このセミランダムの実装ですか?