【发布时间】:2010-12-25 18:06:08
【问题描述】:
我有一个小问题。我试图捕捉窗口的 OnUnLoad 事件并询问确认问题,如果用户决定他们想要留下那么很好,如果他们想要离开页面,那么他们将丢失所有未保存的数据。这是问题...
我正在使用 jQuery UI 对话框,当我将以下代码放在我的页面上时,我打开了对话框,当我单击浏览器上的后退按钮时,它永远不会弹出 msgbox。它只是刷新页面:
<script type="text/javascript">
$(window).bind('beforeunload', function() {
alert('you are an idiot!');
}
);
</script>
我使用的解决方案是一个帖子here。同样,如果我没有打开 jQuery UI 对话框,msgbox 将正常显示。如果我这样做了,那么它不会显示 msgbox,只会刷新页面。
有什么想法吗?
【问题讨论】:
-
您使用的是哪个浏览器?
onbeforeunload事件未在 w3 标准中指定,因此某些标准严格的浏览器不支持它。众所周知的例子是 Opera。 -
IE8,在兼容模式下试了一下还是不行...
-
如何添加限定符?我希望此消息仅在用户对页面文本进行了一些修改时显示。
-
@Nicholas:这篇文章展示了如何通过调用函数来打开/关闭它:stackoverflow.com/questions/1244535/…
-
FWIW,HTML5 规范声明浏览器不需要在 beforeunload 过程中支持“警报”-也许在您的示例中,浏览器仅支持某些特殊情况,而其他情况则不支持。无论如何,你在 beforeunload 事件中返回的是一个提示信息。浏览器负责离开或停留在页面上。见developer.mozilla.org/en-US/docs/DOM/window.onbeforeunload和dev.w3.org/html5/spec-LC/history.html#unloading-documents
标签: jquery jquery-ui-dialog onbeforeunload