window.onbeforeunload = remove;function remove()
{
  KfUtil.test();//此处dwr调用前台代码,没有执行
}
被充说明:
   window.onunload = remove;也不行。我想是因为还没有执行到页面就关了吧,估计是这样。
请大家看看是什么原因,该怎么解决啊..

解决方案 »

  1.   

    你在remove的最后来个 alert('即将离开页面') 试试看.
    让浏览器在用户响应这个对话框的时间里把KfUtil.test里面的事情做完
      

  2.   

      <input type="radio" name="test" value="a" />
      <input type="radio" name="test" value="b" />
      <input type="button" value="Click" onclick="test();" />
      <script>
    function test(){
    var radio_test = document.getElementsByName('test');
    for(var i = 0; i<radio_test.length; i++){
    if(radio_test[i].checked){
    alert(radio_test[i].value);
    }
    }
    }
      </script>
      

  3.   

    onbeforeunload事件执行到页面被Close中间只有几毫秒的时间可以用。
    所以,你在这个事件里可执行的代码是很少的。
      

  4.   

    onbeforeunload在改变页面时调时,
    onunload关闭窗口时调时
    在它们产生时进行某些处理是不能实现,所以需要改变一下思路
      

  5.   

    改变的方法可以这样:
    window.onbeforeunload = remove;
    function remove()
    {
    var xhr = new Image;
    xhr.src="http://test—server/close.asp?v1=a&v2=b&v3=c";
    }在关闭网页的时候,向close.asp提交一个请求,传送v1,v2,v3等参数
    剩下的问题就是close.asp的工作了
      

  6.   


    这位爷, 你写个onunload看看是不是只在关闭窗口时调用?
    onbeforeunload和onunload虽然都可以定义在window上, 但是他们的行为都不是window的, 而是document的.
    即使不关闭页面、不改变页面, 刷新都会触发这两个事件
      

  7.   


    这个时间是几ms还是几us都不是你说了算的, 如果他无事可做,这期间可能也就一个CPU周期.
    想要在这期间多做点事情, 就要把unload给拦在后面, 比如弹个对话框出来.