卸载不能在IE9和FF4中工作

时间:2011-05-13 02:27:31

标签: internet-explorer-9 firefox4 window.onunload

var unloadOK = "false";//used as variable when data need to be send to the server
window.onbeforeunload = CheckBeforeUnload;
window.onunload = CheckUnload 

function CheckBeforeUnload(){
  document.getElementById("ContentPlayer").CheckUnload("");
  return "Are you sure you want to exit?"
}

function CheckUnload(){
  unloadOK = "true"; 
  pause(1000);

  alert("session saved");
}

function pause(millis) 
{
  var date = new Date();
  var curDate = null;

  do { 
    curDate = new Date(); 
  } while(curDate-date < millis);
} 

以上是代码:我在尝试关闭浏览器时尝试发送数据 Onunload方法在IE7和IE8中工作,但在IE9和FF4中不工作。  应用程序内置于Flex 3.0 sdk。

任何人都可以建议onunload的问题是什么解决方案可以在浏览器关闭时可靠地发送数据以及onunload如何在所有浏览器中一致地工作?

1 个答案:

答案 0 :(得分:0)

  

以上是代码:我正在尝试发送   用户试图关闭时的数据   浏览器。 Onunload方法在IE7中工作   和IE8但不在IE9和FF4中。   应用程序内置于Flex 3.0 sdk。

不确定它有多重要,但在将它们指定为处理程序之前尝试调用函数。

function CheckBeforeUnload(){
  document.getElementById("ContentPlayer").CheckUnload("");
  return "Are you sure you want to exit?"
}

您可能需要alert()而不是return

  

任何人都可以提出什么问题   onunload是有解决方案的   浏览器时可靠地发送数据   关闭和如何onunload工作   在所有浏览器中始终如一?

不幸的是,用户只需关闭您的页面所在的选项卡并绕过它。他们还可以使用谷歌Chrome的进程监视器来杀死标签。最后,他们可以强制退出应用程序。依赖此功能作为最终解决方案是不好的。