2011-07-06 14 views
1

hejdig。親がリフレッシュされたときに子ウィンドウを見つけるにはどうすればよいですか?

ウェブソリューションでは、メインウィンドウが更新されたときに子ウィンドウを再利用したいが、参照を失う。 孤立した子ウィンドウを見つけるにはどうしたらいいですか? (これにより、親のリフレッシュに孤立している)

/


状況:

  1. 親ウィンドウが存在します。
  2. ユーザーがボタンを押して子ウィンドウを開きます。
  3. ユーザーが子ウィンドウにテキストを入力します。
  4. ユーザーは親ウィンドウを更新するように求めます。
  5. ユーザーがボタンを押して子ウィンドウを開きます。
  6. 子ウィンドウがリフレッシュされ、ユーザーのテキストがなくなりました。

私の場合、親はCMSであり、ユーザーが新しい記事を見たときにリロードするのは自然です。この状況は新しいものではありません。新しいことは、編集可能な子ウィンドウがあることです。

だから、実世界の状況は同様である:

  1. ユーザーは、サイト(CMS)を閲覧します。
  2. ユーザーがポップアップを開き、何らかのデータの入力を求められます。
  3. ユーザーがポップアップにデータを入力します。
  4. ユーザーは新しい記事を見ることにします(親で新しいURLを取得します)。
  5. ポップアップが非表示になっているので、ユーザーがポップアップをもう一度開くと、再びポップアップが開きます。
  6. ポップアップがリフレッシュされます(私が避けようとしているもの)。

私が見つけた唯一の回避策は、第三のウィンドウをIFRAME、フレームセットを使用するか、または開くことで、これらのソリューションのどれも私の状況では不可能です。それは子供をリロードするので、

wnd = window.open("", "uniquename"); 

を呼び出すと、動作しません。

未知のアイデアは、wndハンドルがブラウザセッションで一意であるかどうかを確認し、それをクッキーなどに格納することです。別の未試行のアイデアは、子供が孤児になっているかどうかを調べてから、タイマーで親を見つけることができるかどうかです。親にそう をprentするregisteritselfますあなた自身が子供にタイマーを入れてみてください言ったように

答えて

1

HIタイマーで

var wnd = null; 
function registerChild(child){wnd = child} 

と子供に将来gogglersについては毎秒またはハーフ

window.opener.registerChild(window); 
+0

を関数を作成:実験がうまくいくはずです。ありがとう! – LosManos

+0

タイマーの考え方や、ユーザーがハックを回避することが可能な時間のギャップが気に入らないのですが。だから私は、移行POC - >現実世界のアプリケーションを待たなければならないと思います。 – LosManos

関連する問題