[英]How do I attach a Javascript event to the mobile Safari back button?
当用户单击移动 Safari 中的后退按钮时,我需要显示一个确认对话框。 我有一个很长的申请,我想在用户离开页面之前提醒他们他们的申请尚未填写/完成。 当用户单击链接并尝试离开页面时,我已经完成了所有设置,但是我一生都无法弄清楚如何将事件附加到浏览器的后退按钮。 onbeforeunload
在 iOS 中不起作用。 任何提示将不胜感激。
注意:我意识到警报框是撒旦的产物,但这就是我被告知要做的。
您可以检查onpageshow
事件的persisted
属性。 它在初始页面加载时设置为 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 也不例外。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.