<HTML>
<HEAD>
<SCRIPT>
function closeIt()
{
event.returnValue = "离开本页面,未保存的数据会丢失,离开前请确认数据已经保存。是否离开?";
}
</SCRIPT>
</HEAD>
<BODY onbeforeunload="closeIt()">
<a href="http://www.baidu.com">去百度</a></BODY>
</HTML>-------以上代码我会用,但我的问题是:
如果我点击"保存"按钮,也会弹出提醒狂,这样是不合理的.
请问我该如何实现这样的功能:
未保存就要离开页面的话,给予提示,
如何点击的是"保存",则不弹出,而是进行其他操作,例如保存.谢谢!

解决方案 »

  1.   

    <HTML>
    <HEAD>
    <SCRIPT>
    function closeIt(e, f)
    {
    e = e || window.event;
    if(f) return;
    event.returnValue = "离开本页面,未保存的数据会丢失,离开前请确认数据已经保存。是否离开?";
    }
    </SCRIPT>
    </HEAD>
    <BODY onbeforeunload="closeIt(event, '')">
    <a href="http://www.baidu.com">去百度</a>
    <input type="button" value="save" onclick="closeIt(event,true)" />
    </BODY>
    </HTML>
      

  2.   

    点击保存的时候执行一句:
    document.body.setAttribute("onbeforeunload",null)
      

  3.   

    请问 e = e || window.event; 这句是什么意思?
    尤其是|| ,该符号是连接符还是逻辑或?
    另外,<BODY onbeforeunload="closeIt(event, '')">
    这句中的'' 可否改成false ? 有何区别?
    谢谢!
      

  4.   

    e = e || window.event;这是为了兼容火狐浏览器,因为IE的event是作为window的属性存在,而FF则是作为参数传进来,
    || 是或的意思,如果左边的值是false;则取右式的值,否则取左边。
    <BODY onbeforeunload="closeIt(event, '')">里面的''应该是false;因为javascript里面'',undefined,0,null都认为是false,所以有点误导你了,应该是false;
      

  5.   

    <HTML>
    <HEAD>
    <SCRIPT>
    var temp = false;
    function closeIt()
    {
    if(temp) return;
    else
    event.returnValue = "离开本页面,未保存的数据会丢失,离开前请确认数据已经保存。是否离开?";
    }
    function btn(){
    temp = true;
    }
    </SCRIPT>
    </HEAD>
    <BODY onbeforeunload="closeIt(event, '')">
    <a href="http://www.baidu.com">去百度</a>
    <input type="button" value="save" onclick="btn()" />
    </BODY>
    </HTML>
      

  6.   

    简单的解决办法是,加个全局变量,如果点了保存按钮,变量赋值为1,然后在onbeforeunload事件触发的函数里判断这个变量是否为1