我要求当用户点击浏览器的[X]按钮时,我应该给他们一条消息.
我使用JavaScript的onUnload方法完成了这项任务.
现在,即使我刷新页面,也会出现相同的消息!
为什么会这样,如何克服?
代码在这里
<!DOCTYPE HTML PUBLIC" - // W3C // DTD HTML 4.0 Transitional // EN"> <HTML> <HEAD> <script language ="javascript">
功能消息()
{alert("你想离开吗?"); }
</ script> </ HEAD>
<BODY onUnload ="Message();"> </ BODY> </ HTML>
请帮忙
这是正确的行为:刷新页面涉及卸载它然后再次加载它.
处理此类确认对话框的最佳方法是使用以下代码:
<script language="javascript" type="text/javascript">
window.onbeforeunload = function() {
return "You have unsaved changes.";
}
</script>
Run Code Online (Sandbox Code Playgroud)
如果您在尚未保存或发送邮件时尝试关闭页面,则可以在GMail上看到这种机制.尝试刷新页面时仍会触发,因此确保只有在未保存的工作时才返回错误字符串非常重要.
请记住,无法保证onUnload或onBeforeUnload事件会触发,因为无法保证您的访问者甚至可以启用JavaScript,因此除了对未保存的工作的友好提醒之外,您不应该使用它.