我需要提示用户在离开页面时保存他们的工作.我已经尝试过onbeforeunload但是我需要显示一个样式提示而不是通常的对话框.Facebook已经设法实现这一目标(如果您有Facebook帐户,编辑您的个人资料信息并转到另一个页面而不保存,您会收到样式提示).我也试过jquery卸载但似乎没有办法阻止unload事件传播.
仔细看看Facebook正在做什么:如果您单击页面上的链接,则会收到提示,但在地址栏中输入新URL,单击书签或在浏览器的历史记录中导航回来时,您将收到任何提示.
如果这对您有用,那么很容易做到:只需click
在页面上的每个链接上添加一个事件处理程序,然后从中触发您的程式化确认.由于这些处理程序将在从页面本身触发的任何导航事件开始之前被调用,因此您可以在处理程序中执行任何您想要的操作 - 保存数据,完全取消事件,记录预期目标并将其推迟到他们确认后......
但是,如果您确实需要或想要响应外部触发的导航事件,则必须使用onbeforeunload
.是的,这个对话很糟糕,而且你不能取消这个事件 - 这就是我们为那些在90年代滥用这些功能的所有可耻的白痴所付出的代价.抱歉...
选择的答案很好,但我仍然需要挖掘细节.如果你想使用onbeforeunload事件,这里有一些示例代码: