日期:2014-05-16  浏览次数:20416 次

请教关于‘onbeforeunload’的事件
<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那句提示语。有办法让它不弹出提示语句吗?


------解决方案--------------------
很期待解决办法出现,mark
------解决方案--------------------
有个这样的解决办法
JScript code
<BODY onbeforeunload="javascript:logout()">
 <SCRIPT LANGUAGE="JavaScript">
 <!--
    function logout(){
        if(confirm("确定下线?")){
            return true;
        }else{
            window.event.returnValue=false;        
        }
    }
 //-->
</SCRIPT>

------解决方案--------------------
第二个
你在window.close()后面
覆盖下onbeforeunload方法
什么也不做就可以了
window.onbeforeload=function(){}
------解决方案--------------------
if (!window.confirm("你确定要下线?")){
return;
}
------解决方案--------------------
楼主的那种要求只能在退出登录的时候实现,
就是用户在单击“下线”按钮时,给他一个提示
“你确定要下线?”
单击确定则退出登录,单击取消则什么也不做。
这样的效果是可以的,
但是至于在关闭浏览器或者刷新的时候询问
“你确定要下线?”在执行操作,是去不掉
系统默认的那句提示语的。
一般情况下都是在退出登录的时候实现,很少在关闭
浏览器的时候实现。
祝福楼主,如果可以实现,请告诉我,
让我也学习一下,谢谢!!!O(∩_∩)O谢谢!!!