如何在关闭页面时执行函数完成后再关闭

f98531 2012-08-29 09:25:47
本来可以用<body onunload="function();">的,但是往往函数还没执行完成页面就关闭了,有没有办法等待函数执行完成后再关闭?或者延时关闭?
...全文
475 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
f98531 2012-08-29
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 的回复:]

按取消,就留下了,之前的默认操作就被执行

如果你点的确定,就会重新加载当前页;或者当你是点的关闭页面时就离开当前页
[/Quote]
本来的要求是:离开页面前完成执行函数;
现在这个代码实现的事:离开页面时询问用户,如果点“离开”则执行函数然后关闭页面,如果点“留下”则不关闭页面,但是函数仍然被执行了,这不符合要求啊。
泡泡鱼_ 2012-08-29
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 的回复:]
注意了,对浏览器来说,onbeforeunload 刷新和关闭都会激活此事件
[/Quote]

所以,我之前说过了。都会被激活
泡泡鱼_ 2012-08-29
  • 打赏
  • 举报
回复
按取消,就留下了,之前的默认操作就被执行

如果你点的确定,就会重新加载当前页;或者当你是点的关闭页面时就离开当前页
f98531 2012-08-29
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 的回复:]

给你个代码看效果吧,已经是支持的。只是如果你是alert的话没用罢了
HTML code
<script type="text/javascript">
window.onbeforeunload=function(){
document.getElementById("unload").innerHTML="HaHa";
return "请点击取消留在此页";
}
</script……
[/Quote]
问题在于即使点了“取消”还是会执行document.write操作啊,本来如果不关闭就不应该执行的。
泡泡鱼_ 2012-08-29
  • 打赏
  • 举报
回复
给你个代码看效果吧,已经是支持的。只是如果你是alert的话没用罢了
<script type="text/javascript">
window.onbeforeunload=function(){
document.getElementById("unload").innerHTML="HaHa";
return "请点击取消留在此页";
}
</script>
<div id="unload"></div>
f98531 2012-08-29
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 的回复:]

window.onbeforeunload = function(){....}
[/Quote]
IE下可以,chrome不可以。奇怪了。
泡泡鱼_ 2012-08-29
  • 打赏
  • 举报
回复
注意了,对浏览器来说,onbeforeunload 刷新和关闭都会激活此事件
dhluo 2012-08-29
  • 打赏
  • 举报
回复
window.onbeforeunload = function(){....}

87,992

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧