私は実際にこのコードを書いています。
クロスサブドメイン/ポートコメットを実行しようとするとき、iframeは親フレームと同じdocument.domain
値を持つ必要があります。残念ながら、ブラウザは元のドメイン名とポートを元のdocument.domain
値のために内部的に保存します。しかし、javascriptのgetterとsetterはポートについて何も知らない。問題はこれです:上部フレームdocument.domain
が('example.com', 80)
で、下部フレームが('comet.example.com', 80)
なら、どのように下部フレームを('example.com', 80)
にもできますか?
ホスト名部分を変更すると必ずポートがnull
に設定されるため、最下位のフレームには('example.com', null)
が最適です。そのため、トップフレームもその値に設定する必要があり、document.domain=document.domain
を設定するだけです。ブラウザの内部表現が('example.com', 80)
から('example.com', null)
に変更され、すべてが一致し、クロスポート/サブドメインのフレーム通信が機能します。明示的に、彼らは同じ値を返す場合でも... を設定するときに明示的 と (b)はdocument.domainを設定しない場合は
+1最初の文のために:) –
この解決策は残念ながら私のために働いていません(http://stackoverflow.com/questions/7796767/is-it-possible-to-alter-one-frame-from-another-詳細はjavascriptを使用してください)。 'document.domain = document.domain'をすべてのフレームに追加しても、Chromeの動作は変更されません。何か案は? –
また、私は私のjsの遅延を設定する場合、私は少なくとも、両方のフレームのための有効な見ているURLを取得することを考え出した。しかし、一方のフレームは他方のフレームにアクセスすることはできません。 –