问题如下:
1.比如我打开两个完全独立的ie窗口。(注:不是在选项卡中打开,而是独立的ie窗口),即同一个html文件,执行两次。
为何在a窗口中声明的变量 newWindow,在B窗口中也有效呢?真是怪了。
大家可以试试我上面的代码,同时打开两个窗口,在左边窗口打开上面的代码,再在右边窗口打开同样的代码,A窗口中打开的窗口,在B窗口中会提示“已经存在”,真是怪了。 
2. if (newWindow.focus ){
      newWindow.focus();
}
这是什么意思呢?        var newWindow;
        function makeNewWindow() {
            if (!newWindow || newWindow.closed) {
                newWindow = window.open("zgh.htm", "sub", "status=yes,height=300,width=300");
            }
            else if (newWindow.focus ){
                newWindow.focus();
            }
            newWindow.location = "zgh.htm";
            //newWindow.moveTo(0, 0);
            newWindow.window.resizeTo(400, 400);
            newWindow.window.moveTo(350,0);
        }

解决方案 »

  1.   

    开一个窗口相当于开一个系统的进程,可看作系统等于将该进程标识为newWindow(newWindow不仅是变量),在操作系统范围来看,该进程对B窗口可见,所以有效。if (newWindow.focus) 用于确定focus方法存在,因为newWindow不一定引用window对象.
      

  2.   

     if (newWindow.focus ){ 
          newWindow.focus(); 

    判断newWindow是否获取焦点
      

  3.   

    个人认为应该是if(!newWindow.focus){}
      

  4.   

    查下html手册吧,我记得win.open方法中有一个参数是做标识的,是第一个还是第二个忘了,就是说你第一个窗口打开了一个带有这个表示的窗口了,下次在执行或者新窗口中执行,都会发现此标识的窗口已经存在。可能是那个’sub‘