javascript - Javascript onUnload 方法的问题

标签 javascript

我有一个要求,当用户点击浏览器的[X]按钮时,我应该给他们一个消息。

我使用 JavaScript 的 onUnload 方法完成了这个任务。

现在,即使我刷新页面,也会出现相同的消息!

为什么会这样,如何克服?

代码在这里

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <头> <脚本语言 = "javascript">

函数消息()

{ alert("Are you sre you want to leave?");

请帮忙

最佳答案

这是正确的行为:刷新页面涉及卸载它然后再次加载它。

处理此类确认对话框的最佳方法是使用如下代码:

<script language="javascript" type="text/javascript">
window.onbeforeunload = function() {
    return "You have unsaved changes.";
}
</script>

这是您在 GMail 上看到的机制,如果您在邮件尚未保存或发送时尝试关闭页面。尝试刷新页面时它仍会触发,因此请务必确保仅在确实存在未保存的工作时才返回错误字符串。

请记住,不能保证 onUnloadonBeforeUnload 事件会触发,因为不能保证您的访问者甚至会启用 JavaScript,所以您不应该除了对未保存的工作进行友好提醒之外,还可以使用它。

关于javascript - Javascript onUnload 方法的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1384727/

相关文章:

javascript - 如何在更新增益之前清空状态中的数组?

javascript - Angularjs 依赖注入(inject) uglify

javascript - 适用于 IE 6 的 Jquery 旋转图像 >

javascript - 在 https 或 http POST 黑莓中启用 JavaScript

javascript - html5拖放文件-提交整个表单时上传

javascript - 替换 Chartist.js 中的 y 轴标签

javascript - 在 Javascript 中获取图像的高度/宽度(理想情况下根本不加载图像)

javascript - 如何在从另一个脚本文件加载 JS 时执行成功回调

javascript - Sails : JSON array of Model objects successfully created and displayed, 但只有一些保存到数据库

javascript - 自定义 jquery Accordion 箭头