我有一个要求,当用户点击浏览器的[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 上看到的机制,如果您在邮件尚未保存或发送时尝试关闭页面。尝试刷新页面时它仍会触发,因此请务必确保仅在确实存在未保存的工作时才返回错误字符串。
请记住,不能保证 onUnload
或 onBeforeUnload
事件会触发,因为不能保证您的访问者甚至会启用 JavaScript,所以您不应该除了对未保存的工作进行友好提醒之外,还可以使用它。
关于javascript - Javascript onUnload 方法的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1384727/