用javascript实现始终保持打开同一个子窗口以及关闭父窗口同时自动关闭所有子窗口

 更新时间:2007年06月08日 00:00:00   作者:  
今天在网上看到这篇文章,感觉很少会用到,但毕竟还是有些人需要这样的功能的,否则就不会有这篇文章,这篇文章主要是解决以下问题:
复制代码 代码如下:

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需再刷新一下页面才能执行]

打包文件下载

相关文章

  • JS实现静止元素自动移动示例

    JS实现静止元素自动移动示例

    这篇文章主要介绍了JS实现静止元素自动移动的具体实现,需要的朋友可以参考下
    2014-04-04
  • javascript下IE与FF兼容函数收集

    javascript下IE与FF兼容函数收集

    在我们平时写js的过程中,有可能会考虑到尽量兼容浏览器的兼容性,下面是两个常用的方法
    2008-09-09
  • js 随机数代码大全

    js 随机数代码大全

    很多情况下,需要用到随机数,脚本之家特为大家整理了一些具体的使用与说明。
    2010-08-08
  • uniapp中刷新本页面的三种方法

    uniapp中刷新本页面的三种方法

    这篇文章主要给大家介绍了关于uniapp中刷新本页面的三种方法,刷新页面的具体逻辑可以根据实际需求进行编写,文中通过代码介绍的非常详细,需要的朋友可以参考下
    2023-10-10
  • JS cookie中文乱码解决方法

    JS cookie中文乱码解决方法

    本篇文章主要是对JS中的cookie中文乱码解决方法进行了介绍,需要的朋友可以过来参考下,希望对大家有所帮助
    2014-01-01
  • JS和JQuery实现雪花飘落效果

    JS和JQuery实现雪花飘落效果

    本文主要给大家讲述了如何用JS和JQuery两种方式实现雪花飘落的动画效果,有需要的朋友收藏一下吧。
    2017-11-11
  • CSS和Javascript简单复习资料

    CSS和Javascript简单复习资料

    CSS和Javascript简单复习资料,学习css与js的朋友可以参考下。
    2010-06-06
  • JS 控件事件小结

    JS 控件事件小结

    事件对于控件来说至关重要,控件的消息通信机制使用事件的成本最低,但是对于JS控件来说有一些麻烦需要解决,JS类本身不支持事件,DOM模型支持的事件仅适应于浏览器的DOM节点。所以创建一套事件是我们写控件之前要做的
    2012-10-10
  • 微信小程序实现循环动画效果

    微信小程序实现循环动画效果

    这篇文章主要介绍了微信小程序循环动画效果的实现方法,非常不错,具有一定的参考借鉴价值,需要的朋友可以参考下
    2018-07-07
  • js实现本地时间同步功能

    js实现本地时间同步功能

    这篇文章主要为大家详细介绍了js实现本地时间同步功能,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-08-08

最新评论