如题,如果用户点击窗口的XX关闭页面(异常关闭),我需要保存一些数据,目前我使用body的onbeforeunload的事件去实现jquery的ajax方法调用后台,但是ajax方法不执行(正常关闭ajax调用无异常)
  请问:该如何解决类似的问题?

解决方案 »

  1.   

    /// onbeforeunload事件 
    function winBeforeClose() {
                //用户点击浏览器右上角关闭按钮或是按alt+F4关闭   
                if (event.clientX > document.body.clientWidth - 20 && event.clientY < 0 || event.altKey) {
                    window.event.returnValue = "提示信息";
                }
                //用户点击任务栏,右键关闭。s或是按alt+F4关闭   
                else if (event.clientY > document.body.clientHeight || event.altKey) {
                    window.event.returnValue = "提示信息";
                }
                //其他情况为刷新
                else {
                    IsRefresh = true;
                }        }
    /// onunload 事件中去同步请求保存数据【注意:最好使用同步】
    关键还是捕获关闭的事件,捕获不到后面的一切都没意义
      

  2.   

     if (event.clientX > document.body.clientWidth && event.clientY < 0 || event.altKey) {
                         window.event.returnValue = "是否关闭?";
    }
      

  3.   


    <script language="javascript" type="text/javascript">
            $(function(){
            winBeforeClose();
            });
    </script>这样写可以吧 ,但是还是无法响应
      

  4.   


    只是需要在用户非正常关闭窗口的情况下,保存当前的一个状态到数据库,这个非正常关闭暂不考虑断电的情况,主要考虑用户点击IE的X按钮
      

  5.   

    最后还是无法在winBeforeClose中执行ajax,最后使用隐藏的iframe动态给他src在pagelode中执行我需要的数据交互行为,还是谢谢大家