把窗口名保存到cookie里,window.open方法可查询一个命名出窗口是否打开,每次都用cookie里的窗口名去检查窗口是否存在。
可参考:http://www.w3school.com.cn/htmldom/met_win_open.asp

解决方案 »

  1.   

    如果是HTML5的话,也可以用HTML5的本地存储功能实现。
      

  2.   

    给你的open函数参考地址,没有仔细看。
    window.open(URL,name,features,replace)
    参数name:一个可选的字符串,该字符串是一个由逗号分隔的特征列表,其中包括数字、字母和下划线,该字符声明了新窗口的名称。这个名称可以用作标记 <a> 和 <form> 的属性 target 的值。如果该参数指定了一个已经存在的窗口,那么 open() 方法就不再创建一个新窗口,而只是返回对指定窗口的引用。在这种情况下,features 将被忽略。
      

  3.   

    我上面说的也有逻辑问题,不用检查,用同名的直接打开就可以,同名窗口不存在则会新开一个窗口,同名窗口存在则open函数只会返回已存在窗口的引用,所以不用检查。
    关键就是要把窗口名保存起来。那么父窗口关了再开的时候就直接用cookie里面的窗口名去open。
    另外种做法,可以在父窗口关闭的onclose事件里,把打开的子窗口全都关闭。