我有一个小问题 . 我试图 grab 窗口的OnUnLoad事件并询问确认问题,如果用户决定他们想要保持那么好,如果他们想离开页面,那么他们将丢失所有未保存的数据 . 这是问题......
我正在使用jQuery UI对话框,当我在页面上放置以下代码时,我打开了Dialog,当我单击浏览器上的后退按钮时,它永远不会弹出msgbox . 它只刷新页面:
<script type="text/javascript">
$(window).bind('beforeunload', function() {
alert('you are an idiot!');
}
);
</script>
而我正在使用的解决方案是一个帖子here . 再次,如果我没有打开jQuery UI对话框,msgbox将显示正常 . 如果我这样做,那么它不会显示msgbox并只刷新页面 .
有任何想法吗?
6 回答
显示警报的正确方法是简单地返回一个字符串 . 不要自己调用
alert()
方法 .另见:https://developer.mozilla.org/en-US/docs/Web/Events/beforeunload
您也可以通过提交特定表单来离开页面例外:
这对我有用
jQuery API明确表示不要绑定到beforeunload,而应该直接绑定到window.onbeforeunload,我只是遇到了一个非常糟糕的内存,部分原因是绑定到了使用jQuery的beforeunload .
这对我有用:
对于ASP.NET MVC,如果您想通过提交特定表单来离开页面例外:
设置表单ID: