当用户点击移动版Safari中的后退按钮时,我需要显示一个确认对话框。我有一个很长的应用程序,我想提醒用户他们的应用程序在离开页面之前尚未填写/完成。当用户点击链接并尝试离开页面时,我已经设置了所有内容,但我无法终身了解如何将事件附加到浏览器的后退按钮。 onbeforeunload在iOS中不起作用。任何提示都将非常感激。
注意:我发现警报箱是撒旦的产物,但这就是我被告知要做的事情。
答案 0 :(得分:3)
您可以查看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.");
}
};
答案 1 :(得分:-1)
在Chrome等桌面浏览器中,您可以拦截页面的离开并显示消息。 除了显示消息外,你不能做任何事情。由于显而易见的原因,浏览器正在休息。 Dunno,如果这也适用于iOS。
window.onbeforeunload = function () {
return 'do you really wanna do that?'
}
答案 2 :(得分:-2)
在任何浏览器中都不允许控制后退按钮。我怀疑移动Safari没有什么不同。