これが取引です:
domain.com/page-親ページ(document.domain = domain.com)にiframeが含まれていますsub.domain.com/page-子iframe(document.domain =未設定)がサブドメインにあります
そのiframeのDOMにアクセスする方法はありますか、それとも運が悪いですか?
同じOriginポリシーにより、親ページに含まれるiframeにdocument.domainを強制することができませんか?それは同一生成元ポリシーの目的を無効にするだろうと思います...その場合、レンダリングされた親ページのiframeのDOMにアクセスするための回避策はありますか?
やり方がある。 iframeのページが読み込まれたら、次のようにします
parent.childGetElementById = function (id) {return document.getElementById(id);}
parent.childLoaded();
これにより、親ページ(iframeを含む)のグローバルスコープで関数が作成されます。次に、親で、次のようにします
function childLoaded() {var dom = childGetElementById('someid');}
これは、iframeに読み込むページを制御できるためです...そうでない場合は、運が悪いことになります。
これはブラウザのセキュリティ対策です。そうしないと、ログイン時に誰もが銀行のWebサイトをラップして、パスワードをすくい取ることになります。
Iframeから親と話すことはできますが、再びiframeに戻ることはできません。
私の知る限り、あなたは運が悪い。ただし、URLのハッシュバンを使用してそれらの間で話すことができます。まともな議論については this を参照してください。