JavaScript + onunload事件

时间:2009-08-10 13:26:26

标签: javascript onunload

我想触发onunload事件来做一些清理操作,我有多个标签(Navbar)显示到不同网页的多个链接,我的问题是,即使我在其他一些页面我的卸载功能是在其他一些jsp的标签被解雇了。请帮忙解决此问题,我想在用户关闭该页面中的浏览器时调用卸载功能。

3 个答案:

答案 0 :(得分:3)

我不确定你是如何让onunload事件工作的....我在使用onunload事件时发现的问题是它在页面被卸载后被触发。这意味着不能再执行JavaScript,因为页面已被卸载。

您应该考虑使用onbeforeunload事件。 此事件有点独特,因为如果处理此事件的函数返回任何内容,则会显示弹出窗口,询问用户是否要继续操作。因此,在您的情况下,请确保您的函数不返回任何内容。关于onbeforeunload事件的另一个注意事项是,目前,Opera不支持它(Safari,FireFox和Internet Explorer都支持)。

每次卸载页面时都会执行onbeforeunload和onunload事件。如果页面上的控件将页面提交到服务器代码,则会卸载页面并执行JavaScript。

如果您不希望在页面上的控件将其提交给服务器时执行JavaScript,则必须实现检查代码是否应该执行的内容。

这很简单,在页面中添加一个JavaScript布尔值,并将一个将此布尔值设置为true的函数。确保页面中发回服务器代码的每个元素在提交页面之前将此布尔值设置为true。在onbeforeunload事件中检查此布尔值,看看是否应该执行清理代码。

希望这有帮助,

-Frinny

答案 1 :(得分:0)

似乎已在全局范围内创建了卸载功能。尝试仅将该功能放在您要采取行动的页面上。

答案 2 :(得分:0)

你有一个框架集页面?并且您希望在离开框架集时收到通知?在框架集上添加onbeforeunload。我不清楚你的意思是清理,但你不能在浏览器安全卸载期间发送XHR