1.  当你还没有转到logout.do叶面的时候,窗口已经关闭了,你当然无法注销了
    但是alert可以暂停叶面关闭
    可以用onbeforeunload结合xmlhttp执行注销操作2.  可以在后台程序中判断referrer,如果不是本域则先注销

解决方案 »

  1.   

    1.htm:
    <body>
    注销用户
    <script>
    document.body.onbeforeunload=function(){logout()};
    function logout()
    {
       if(confirm('确实要注销?'))
         {
           var xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
           var url='logout.asp?action=logout';
           xmlhttp.open('post',url,false);       if(xmlhttp.readyState==4)
              {
                 if(xmlhttp.status!=200)
                    {
                       alert('注销失败'+xmlhttp.statusText);
                       event.returnValue=false;
                    }
              }
         }
    }
    </script>
    </body>logout.asp:<%
    if request("action")="logout" then
    session.abandon
    end if
    %>
      

  2.   

    <script language="javascript">
    window.onbeforeunload = function()  //author: meizz
    {
      var n = window.event.screenX - window.screenLeft;
      var b = n > document.documentElement.scrollWidth-20;
      if(b && window.event.clientY < 0 || window.event.altKey)
      {
        var xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
        xmlhttp.open("GET", "logout.asp?action=logout", false);
        xmlhttp.send();
      }
    }
    </script>
      

  3.   

    我的是JSP,如何在脚本中判断所转向的是不是本应用中的其它页面或者是不同的应用啊?
      

  4.   

    如果alert()只是延时作用,那JAVASCRIPT脚本中有没有延时的方法啊?
      

  5.   

    用个循环作延时不就行了
    for(var i=0;i<2000000;i++)
    {
            ;
    }
      

  6.   

    我的是JSP,如何在脚本中判断所转向的是不是本应用中的其它页面或者是不同的应用啊?
      

  7.   

    延时函数倒是有一个:
    <Script language='javascript'>
    setTimeout('function aa()',1000)   //1秒后执行一次,以后不在执行
    </Script>不知道能否满足你 的要求; vivianfdlpw() 和 meizz(梅花雪)的方法也是不错的,个人觉得又要创建 OBJ
     ActiveXObject("Microsoft.XMLHTTP");比较郁闷。如果解决不了只能想一种变通的办法了,比如:onbeforeunload的时候,当用户确定要注销
    触发执行一个隐藏页面,在该页面(你的logout页面)的onload后进行一些必要的(全局)变量判断
    之后再去操作(关闭或者不关闭)opener页面,也就是你的onbeforeunload的页面。没有测试,只是一条思路,仅供参考!
      

  8.   

    第一个问题好办,现在主要是第二个问题,我的注销不是提交到页面,而是SERVLET,如何在脚本或者是servlet里获取所转向的URL啊?这样我可以判断是不是本网站中的页面啊