实用126、QQ邮箱,几乎任何一款邮箱,在编辑邮件内容,你想要关闭网页,它会弹出一个对话框,提示说“当前内容未保存,确认退出"
这个代码如何写?
网站找了一堆,全没用。比如这种:
<script language=javascript>  
function window.onbeforeunload()  
{  
if (event.clientX> document.body.clientWidth && event.clientY <0||event.altKey){  
  window.event.returnValue= "确定要退出本页吗? ";  //

}
</script>
没效果。
求个可行的效果,实在搞不定这个东西

解决方案 »

  1.   

    <body onbeforeunload="return '"确定要退出本页吗?'">刷新也算退出的,刷新内容也会丢失
      

  2.   

    许多桌面应用程序会有这样的一个功能,例如word,在你修改一个文档之后,未点击保存,就直接点击关闭按钮,这时word会提示你有文档内容有改动,真的要关闭吗?其实在web应用程序中,我们也可以模拟实现这样的功能,那就是在窗口关闭前事件(window.onbeforeunload)中加以处理:    function GetChangeStatus(objName) {
       $("#" + objName).val("true");  
      } //当onChange事件触发时,设置相应隐藏域的值为true,说明文本输入框里的内容有所改变了.
        var clientW, clientH;
       window.onbeforeunload = function(evt) {
       if ($("#SmallChanged").val() == "true") {
       evt = evt || window.event;
       if (window.event) {
       if (evt.clientX > document.documentElement.clientWidth && evt.clientY < 0 || evt.altKey)
       evt.returnValue = "Do you want to leave this page without saving?";
       }
       else {
       if (clientH < 222)
       evt.returnValue = "Do you want to leave this page without saving?";  
      }
       }
       }   document.onmousemove = function(e) {
       e = e || window.event;
       if (e != window.event) {
       clientW = e.pageX;
       clientH = e.pageY;
       }
       }
    注意: 点击"刷新"按钮,window.onbeforeunload会也触发的,所以我们需要判断鼠标的位置是否在浏览区域的外面,即大于clientWidth和clientY小于0;另外,在firefox浏览器中要通过鼠标移动事件来获取pageX,pageY,而firefox浏览器中的pageY很特殊,没有负数(写兼容firefox的javascript极其不容易!),所以不可能小于0,所以我们只能大概规定小于某个数值的区域就是"关闭"按钮所在位置,超过这个区域的刷新动作不会触发提示.