<body onbeforeunload="return '退出登录将导致网络中断,是否继续?'" > 
大家可以在机器上测试一下第一个RETURN会弹出什么窗口。我这弹出是:确定要离开该页面吗?
退出登录将导致网络中断,是否继续?
按确定继续,按取消留在当前页
第一个问题:客户想,只要一行字,他要求该弹出窗口只显示:你确定要下线?
后来我改成:<body onbeforeunload="window.onbeforeunload=null;alert('你确定要下线?');">
但是,这样改了就只有:‘确定’按钮,没有‘取消’按钮了。 
当然,这肯定不行啊,取消按钮也的有呀!在这个页面里,我还有一个用户下线的按钮<input type="button" name="loginsubmit" value="下 线" class="bottom" onClick="do_logout();return false;">
 function do_logout(flg) { 
    /*if(flg!="" && !confirm("你确定要下线?"))
  return;*/  var con=postData("省了", "post", "uid="+uid.value);  if(con=="logout_ok")  {  window.close();  }  else  {  alert("操作失败");  } }
第二个问题:用户下线的按钮提示语备注掉了,但是他还是一直显示windows的onbeforeunload那句提示语。有办法让它不弹出提示语句吗?

解决方案 »

  1.   

    有个这样的解决办法
    <BODY onbeforeunload="javascript:logout()">
     <SCRIPT LANGUAGE="JavaScript">
     <!--
    function logout(){
    if(confirm("确定下线?")){
    return true;
    }else{
    window.event.returnValue=false;
    }
    }
     //-->
    </SCRIPT>
    但是会提示两次
    期待更好的方法
      

  2.   

    第二个
    你在window.close()后面
    覆盖下onbeforeunload方法
    什么也不做就可以了
    window.onbeforeload=function(){}
      

  3.   

    if (!window.confirm("你确定要下线?")){
    return;
    }
      

  4.   

    var flag = true;
    function closeIt() {
    if (flag) {
    flag = false;
    //关闭时的事件
    }
    }通过这样可以避免提示两次