JavaScript + onunload 事件

标签 javascript onunload

我想触发 onunload 事件来执行一些清理操作,我有多个选项卡(导航栏)显示指向不同网页的多个链接,我的问题是,即使我在其他页面中,我的卸载功能也位于其他一些jsp 的标签被触发。请帮助解决这个问题,我希望当用户关闭该页面中的浏览器时调用卸载函数。

最佳答案

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

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

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

如果您不希望在页面上的控件将 JavaScript 提交到服务器时执行 JavaScript,则必须实现一些东西来检查是否应该执行您的代码。

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

希望这有帮助,

-弗林尼

关于JavaScript + onunload 事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1254869/

相关文章:

Javascript 改进代码 switch 语句

javascript - 使用 Twilio 发送数千条短信

javascript - 使用 jQuery 动态生成图像源

javascript - JS onunload 事件并不总是有效

javascript - 与浏览器无关的钩子(Hook),用于在 window.onunload 上发送异步请求

javascript - 算法得到的数组总和,小于一个限制

javascript - WebGL drawBuffer 输出黑色纹理

javascript - 在 window.onunload 事件中获取下一个打开页面的 url

javascript - 检测弹出窗口何时关闭