js的页面关闭,刷新,跳转到其它页面时可用
window.onbeforeunload = function(){
  //code..
}
来捕获和处理。
在jquery中应该是jquery.unload(function(){});来捕获。
现在问题是 在这两个函数中(随便用其中一个)
加入Jquery.ajax到其它页面处理数据。
但是jquery的方法并不会执行。window.onbeforeunload = function(){
  $.ajax({
       type:"POST",
       url:"getdata.aspx?id=xx",
       data:"xxx",
       seccess:function(msg){alert(msg);}
       });
}在getdata.aspx页面进行调试获取传递参数,但不管如何刷新,关闭,跳转到其它页面都行。
getdata.aspx页面始终都没有办法得到传递的数据。
也就说是$.ajax方法并没有工作。但是 如果换成这样:window.onbeforeunload = function(){
  $.ajax({
       type:"POST",
       url:"getdata.aspx?id=xx",
       data:"xxx",
       seccess:function(msg){alert(msg);}
       });
  alert("oooo");
}后面加了一个alert("xx")弹框。
这样ajax方法就会成功运行,页面getdata.aspx页面也能处理到数据了。
但是也同样会弹出对话框。如果不使用jquery,使用Prototype函数库的Ajax.Request方法就可以完美传送数据。问题就如上所述,本人所做的东西都是基于jquery实现,不想再引用prototype
而且引用prototype会引出页面函数冲突,很多js都没办法工作。
也不想为了这么一个功能再多引入一个差不多百k的文件,页面膨胀得太厉害。有什么解决办法呢?望高手赐教。

解决方案 »

  1.   

    window.onbeforeunload = function(){
      $.ajax({
      type:"POST",
      url:"getdata.aspx?id=xx",
      data:"xxx",
      async:false,
      seccess:function(msg){alert(msg);}
      });}
      

  2.   

    多谢。。两位。。jquery的unload不执行,
    window.onbeforeunload能成功。
    不过也行了。
      

  3.   

    我也遇到和你一样的问题,最后只能使用window.onbeforeunload,然后再使用async:false,这样才能成功,但那个讨厌的弹出对话框很让人恼火,但有时候又不出现,呵呵,目前也只能这样了,不知道有没有更好的方法
      

  4.   

    有人给出了一个解决方案,不过我还没来得及测试:
        <script type="text/javascript">
        window.onbeforeunload = function(){
        return;
        }
        </script>
    这样就不会有提示对话框了