繁体   English   中英

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

[英]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?'
}

http://jsfiddle.net/JAAZ5/

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM