<script language="javascript">
   alert("1");
   if(true){

var i=11;
alert("after close");
alert("2");
         window.close();
}
alert("i="+i);
   alert("3");
   if(true){
alert("4");
   }
</script>

解决方案 »

  1.   

    分别创建两个文件test.htm和t.htm,然后运行test.htm.
    你会发现t.htm的alert("after close");不会运行,t.htm的其余部分都能运行。
    请问是何原因?为什么window.close();以后的js代码仍能运行?为什么紧接着的那句又不能运行?
      

  2.   

    window.close()是关闭窗口,如果先关掉此窗口那么在此窗口中的其他语句当然不执行了.除非是用onunload执行的语句.
      

  3.   

    楼上的,window.close();后的语句仍然可以执行!只是它的下一个alert不会执行。
    alert("2");
    }
    alert("i="+i);
       alert("3");
       if(true){
    alert("4");
       }
    </script>
    都能执行的!
      

  4.   

    为什么执行了,因为window.close() 没有执行,窗口并没有关闭
      

  5.   

    更正一下,应该可以执行的
    <script language="javascript" >   alert("1");
       if(true){

    var i=11;
    alert("after close");
    alert("2");
             
    }

    alert("i="+i);
       alert("3");
       if(true){
    alert("4");
       }
       //document.all.WebBrowser.ExecWB(45,1);
       window.close();
       
       
        window.open("a.htm"); //这句话可以执行的</script>
      

  6.   

    "为什么执行了,因为window.close() 没有执行,窗口并没有关闭"窗口有关闭啊,我是奇怪为什么窗口都关闭了,后面的语句还能执行。
    至于为什么紧接着的下一个alert不能执行,而其他代码可以执行,我想可能是因为window.close();会弹出一个对话框是吧,alert也是一个对话框,两个对话框重叠了。随便猜的
      

  7.   

    window.close()函数其实只是隐藏了当前的window对象,那么这个alert()当然不能执行
    而后面没有包含属于window对象所包含对象的代码都可以执行。
      

  8.   

    “而后面没有包含属于window对象所包含对象的代码都可以执行。”--?
    看不懂楼上的意思……