2011-07-06 86 views
1

hejdig。父母刷新時如何找到子窗口?

在Web解決方案中,我想重用我的子窗口,但在主窗口刷新時失去對它的引用。 我怎樣才能找到一個孤兒窗口? (其孤立由於父刷新)


現狀

/OF:存在

  1. 父窗口。
  2. 用戶按下按鈕打開子窗口。
  3. 用戶在子窗口中輸入文本。
  4. 用戶要求刷新父窗口。
  5. 用戶按下按鈕打開子窗口。
  6. 子窗口刷新和用戶文本消失。

對我而言,Parent是一個CMS,當用戶查看一篇新文章時,它很容易重新加載;這種情況並不新鮮。什麼是新的是我有一個可編輯的子窗口。

所以真實世界的情況是這樣的:

  1. 用戶瀏覽網站(一個CMS)。
  2. 用戶打開一個彈出窗口並被要求輸入一些數據。
  3. 用戶在彈出窗口中輸入一些數據。
  4. 用戶決定查看新文章(在父文件中獲取新網址)。
  5. 彈出窗口現在處於隱藏狀態,所以用戶點擊頂部,再次打開彈出窗口。
  6. 彈出窗口被刷新(我試圖避免)並集中注意力。

我發現的唯一的解決方法是使用iframe,框架或打開第三窗口,這些解決方案在我的情況是可能的。

調用

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

不起作用,因爲它重新加載孩子。

未經審訊的想法是,以檢查是否WND手柄是瀏覽器會話是唯一的,並將其存儲在cookie或類似。另一個未嘗試的想法是,如果孩子能夠發現它是否孤兒,然後通過計時器嘗試找到其父母。

回答

1

喜照你說的你自己嘗試把定時器的孩子將registeritself到Prent公司 所以在父母創建功能

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

和孩子在計時器每秒或半

window.opener.registerChild(window); 
+0

對於未來的gogglers :實驗表明它應該工作。謝謝! – LosManos

+0

不喜歡定時器的想法,但用戶可以繞過黑客的時間差距。所以我想過渡POC->真實世界的應用程序將不得不等待。 – LosManos