4

当用户单击移动 Safari 中的后退按钮时,我需要显示一个确认对话框。我的申请很长,我想在用户离开页面之前提醒他们他们的申请尚未填写/完成。当用户单击链接并尝试离开页面时,我已经设置了所有内容,但是我无法终生弄清楚如何将事件附加到浏览器的后退按钮。onbeforeunload在 iOS 中不起作用。任何提示将不胜感激。

注意:我意识到警报框是撒旦的产物,但这就是我被告知要做的。

4

3 回答 3

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.");
    }
};
于 2012-09-29T11:29:14.943 回答
-1

在 Chrome 等桌面浏览器中,您可以拦截页面的离开并显示消息。你不能做任何事情,除了显示信息。出于显而易见的原因,浏览器正在完成其余的工作。不知道这是否也适用于 iOS。

window.onbeforeunload = function () {
    return 'do you really wanna do that?'
}

http://jsfiddle.net/JAAZ5/

于 2012-07-31T17:28:37.067 回答
-2

任何浏览器都不允许控制后退按钮。我怀疑移动 Safari 也不例外。

于 2012-07-31T17:22:33.320 回答