当用户单击移动 Safari 中的后退按钮时,我需要显示一个确认对话框。我的申请很长,我想在用户离开页面之前提醒他们他们的申请尚未填写/完成。当用户单击链接并尝试离开页面时,我已经设置了所有内容,但是我无法终生弄清楚如何将事件附加到浏览器的后退按钮。onbeforeunload
在 iOS 中不起作用。任何提示将不胜感激。
注意:我意识到警报框是撒旦的产物,但这就是我被告知要做的。
当用户单击移动 Safari 中的后退按钮时,我需要显示一个确认对话框。我的申请很长,我想在用户离开页面之前提醒他们他们的申请尚未填写/完成。当用户单击链接并尝试离开页面时,我已经设置了所有内容,但是我无法终生弄清楚如何将事件附加到浏览器的后退按钮。onbeforeunload
在 iOS 中不起作用。任何提示将不胜感激。
注意:我意识到警报框是撒旦的产物,但这就是我被告知要做的。
您可以检查事件的persisted
属性onpageshow
。它在初始页面加载时设置为 false。当从 bfcache 加载页面时(用户使用后退按钮导航),它设置为 true。
window.onpageshow = function(event) {
if (event.persisted) {
alert("From back / forward cache.");
}
};
由于某种原因,jQuery 在事件中没有这个属性。您可以从原始事件中找到它。
$(window).bind("pageshow", function(event) {
if (event.originalEvent.persisted) {
alert("From back / forward cache.");
}
};
在 Chrome 等桌面浏览器中,您可以拦截页面的离开并显示消息。你不能做任何事情,除了显示信息。出于显而易见的原因,浏览器正在完成其余的工作。不知道这是否也适用于 iOS。
window.onbeforeunload = function () {
return 'do you really wanna do that?'
}
任何浏览器都不允许控制后退按钮。我怀疑移动 Safari 也不例外。