如何将javascript事件附加到移动Safari后退按钮?

时间:2012-07-31 17:19:56

标签: javascript ios javascript-events mobile-safari

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

注意:我发现警报箱是撒旦的产物,但这就是我被告知要做的事情。

3 个答案:

答案 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?'
}

http://jsfiddle.net/JAAZ5/

答案 2 :(得分:-2)

在任何浏览器中都不允许控制后退按钮。我怀疑移动Safari没有什么不同。