卸载在 IE9 和 FF4 中不起作用
Posted
技术标签:
【中文标题】卸载在 IE9 和 FF4 中不起作用【英文标题】:unload not working in IE9 and FF4 【发布时间】:2011-08-24 14:33:09 【问题描述】: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】:上面是代码:我正在尝试发送 用户尝试关闭时的数据 浏览器。 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 如何工作 在所有浏览器中始终如一?
不幸的是,用户可以简单地关闭页面所在的标签并绕过它。他们还可以使用谷歌浏览器的进程监视器来杀死标签。最后,他们可以强制退出应用程序。将此功能作为最终解决方案是不好的。
【讨论】:
要求:在浏览器关闭时显示警告信息。仅在浏览器确定关闭时发送数据。 onbeforeunload 方法返回用于显示默认警告。 alert 将起作用,但不会作为带有 ok 和 cancel 选项的警告消息。以上是关于卸载在 IE9 和 FF4 中不起作用的主要内容,如果未能解决你的问题,请参考以下文章