3 回答

TA贡献1808条经验 获得超4个赞
我发现onunload()事件确实触发了。它的行为有些奇怪。附加到该事件的回调函数中的任何内容实际上都是在新页面已在后台加载之后运行的(您无法确定它是否已加载,但是服务器日志记录将显示它已加载)。
更奇怪的是,如果您在onunload()中有一个verify()调用,并且用户单击了链接以转到其他地方,那么您就是在做生意。但是,如果用户关闭iPad Safari浏览器选项卡,则会触发onunload()事件,但您的Confirm()将隐式取消作为响应。

TA贡献1842条经验 获得超12个赞
这部分JavaScript在Safari和Chrome(在ipad和iphone上)以及台式机/笔记本电脑/其他浏览器上对我有效:
var isOnIOS = navigator.userAgent.match(/iPad/i)|| navigator.userAgent.match(/iPhone/i);
var eventName = isOnIOS ? "pagehide" : "beforeunload";
window.addEventListener(eventName, function (event) {
window.event.cancelBubble = true; // Don't know if this works on iOS but it might!
...
} );
添加回答
举报