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