把location.reload();这一句删除没有两个对话框了,但关键语句还是if (document.cookie.length<7)这句判断语句!

解决方案 »

  1.   

    danky() :那句判断是为了限制这个页面只刷新一次,或者说让你只能看到2个。关键是,location.reload()之后IE还照常运行后面的alert,同时alert又没能锁定进程,结果location.reload()后刷新来的新页面又alert了一次。本来reload和alert方法都应该可以锁定进程的,reload更应该中止被reload的window里面的script的运行。但是IE在这一点上显然做的不够充分。
      

  2.   

    呵呵,多掌握一些IE的bug,哪天要干坏事的时候才知道怎么下手啊。
      

  3.   

    我这里ie6有的时候可以正常锁定,有的时候就会出现2个alert。但是如果用window.navigate方法或者location.href="xxx"的方法就能够正常锁定。还有以前用过history.go也能够正常锁定的。把文件保存为testalert.htm:
    <BODY>
    <SCRIPT>
    if (document.cookie.length<7)
    {document.cookie="test=test";
    window.navigate("testalert.htm");}
    else{document.cookie="test="}
    alert("emu");
    </SCRIPT>
    </BODY>
      

  4.   

    這里有位兄台雅興不錯,愿意出所有的分(三千多分)來解這個貼(http://expert.csdn.net/Expert/topic/1305/1305961.xml?temp=.5216638),樓主對IE素有研究,要不要試試?
      

  5.   

    to emu(ston):  你怎么老能找到这些个怪东西,呵呵
      

  6.   

    不是我的错,是IE的bug太多,老被我撞上啊。
      

  7.   

    <SCRIPT>
    if (document.cookie.length<7)
    {
     document.cookie="test=test";
     navigate(location.href);
     //location.reload();
     }
     else
     {
     document.cookie="test="
     }
     alert(document.cookie);
    </SCRIPT>
    将location.reload换成naviget,同样有两个对话框,但两次的结果不一样,
    先有 test=test, 然后是test=。
    奇怪?(IE6)
      

  8.   

    IE5.0下,navigate(location.href);不会同时出来两个对话框啊。现是test=test然后是test=是我故意设计的,要让页面强行刷新,而且只刷新一次。