|
復制代碼 代碼如下:
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 故不適合使用。
[Ctrl+A 全選 注:如需引入外部Js需刷新才能執行]
打包文件下載
JavaScript技術:用javascript實現始終保持打開同一個子窗口以及關閉父窗口同時自動關閉所有子窗口,轉載需保留來源!
鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。