使用jQuery捕获用户离开页面

8

我希望实现一个特性,当用户在离开页面时,如果页面上有未保存的更改,就会弹出提示。因此,我需要捕获从页面触发的事件,并对其执行自定义操作。希望使用jquery来完成这个功能。有什么建议吗?

1个回答

15

你无法使用jQuery来实现这个功能,但是你可以使用纯JavaScript将处理程序附加到window.onbeforeunload

window.onbeforeunload = function() {
  return "You have unsaved changes, do you want to leave?";
};

当他们更改任何输入时,请绑定此内容,并在单击保存按钮时解除绑定(以便在提交时不会提示),使用window.onbeforeunload = null;


jQuery可以使用bind处理事件,但我不确定它在各种浏览器中是否标准化。 - zzzzBov
@zzzzBov - 它在跨浏览器方面不起作用...所以它就是不起作用 :) - Nick Craver
IE 8认为null是一个返回提交,因此它将无论如何使用默认文本触发事件。 - James Drinkard
"unload事件的确切处理方式因浏览器版本而异。例如,某些版本的Firefox在跟随链接时触发该事件,但在关闭窗口时不会触发。在实际使用中,应在所有支持的浏览器上测试行为,并与专有的beforeunload事件进行对比。" - Luke H

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接