文章目錄
- Maintaining the Parent window and Multi Child windows as in WinForm
今天在網上看到這篇文章,感覺很少會用到,但畢竟還是有些人需要這樣的功能的,否則就不會有這篇文章,這篇文章主要是解決以下問題:
複製代碼 代碼如下:1.點擊一個可以開啟新表單的連結,如何?如果表單已開啟,則將焦點轉到已開啟的表單,否則開啟新表單。痛點:如何判斷表單已開啟,及將將開啟的表單Active?
2.如何?一個主表單關閉時,將所有 開啟的其他相關表單一起關閉?
實現要點:
1. window.open 會返回新開啟視窗的 window 對象。
2. 實現一個類比的簡單 HashMap 儲存子視窗的 window 對象。
3. 每次 open 的時候,檢索此 HashMap,確定子視窗是否已存在。
4. 若存在則直接切換焦點 (window.focus) 。
5. 若不存在,則 open 一個。
6. 對於4,有可能子視窗已關閉,故採取了點技巧,先調用其 focus (其實可以任意方法),若出錯,則也open 一個。
7. 關閉parent 的時候,遍曆 HashMap,嘗試關閉所有子視窗。
8. 所有操作在父視窗實現。
9. 整個實現原理其實很簡單,只要需要熟悉js和dhtml,然後注意細節問題處理。
目前 IE 6 sp1 測試通過,FF 由於不支援 window.focus 故不適合使用。 xmlns="http://www.w3.org/1999/xhtml" >
Maintaining the Parent window and Multi Child windows as in WinFormfuncions:
- Open the same child window once.
- Close all the child windows when the parent window is closing.
Child window:
#1#2