|
復(fù)制代碼 代碼如下:
1.點(diǎn)擊一個可以打開新窗體的鏈接,如何實(shí)現(xiàn)如果窗體已打開,則將焦點(diǎn)轉(zhuǎn)到已打開的窗體,否則打開新窗體。難點(diǎn):如何判斷窗體已打開,及將將打開的窗體Active?
2.如何實(shí)現(xiàn)一個主窗體關(guān)閉時,將所有 打開的其他相關(guān)窗體一起關(guān)閉?
實(shí)現(xiàn)要點(diǎn):
1. window.open 會返回新打開窗口的 window 對象。
2. 實(shí)現(xiàn)一個模擬的簡單 HashMap 存儲子窗口的 window 對象。
3. 每次 open 的時候,檢索此 HashMap,確定子窗口是否已存在。
4. 若存在則直接切換焦點(diǎn) (window.focus) 。
5. 若不存在,則 open 一個。
6. 對于4,有可能子窗口已關(guān)閉,故采取了點(diǎn)技巧,先調(diào)用其 focus (其實(shí)可以任意方法),若出錯,則也open 一個。
7. 關(guān)閉parent 的時候,遍歷 HashMap,嘗試關(guān)閉所有子窗口。
8. 所有操作在父窗口實(shí)現(xiàn)。
9. 整個實(shí)現(xiàn)原理其實(shí)很簡單,只要需要熟悉js和dhtml,然后注意細(xì)節(jié)問題處理。
目前 IE 6 sp1 測試通過,F(xiàn)F 由于不支持 window.focus 故不適合使用。
[Ctrl+A 全選 注:如需引入外部Js需刷新才能執(zhí)行]
打包文件下載
JavaScript技術(shù):用javascript實(shí)現(xiàn)始終保持打開同一個子窗口以及關(guān)閉父窗口同時自動關(guān)閉所有子窗口,轉(zhuǎn)載需保留來源!
鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請第一時間聯(lián)系我們修改或刪除,多謝。