用javascript實現始終保持開啟同一個子視窗以及關閉父視窗同時自動關閉所有子視窗

來源:互聯網
上載者:User
文章目錄
  • 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:

  1. Open the same child window once.
  2. Close all the child windows when the parent window is closing.

Child window:

#1#2

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.