beforeunload在IOS Safari中不起作用?

前端的一些坑

Winter

2017-09-15

IOS中的Safari不支持beforeunload,所以想在浏览器关闭之前执行相关事件,就得用另外一种方式了。

1.第一种方式使用unload代替,这个方法确实是可以运行的,但是在官方文档中Safari Web Content Guide,unload是不赞成使用,未来可能会弃用,官方是建议使用pagehide代替unload方法。

2.第二种方式使用pagehide

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!
    ...
} );

第13篇《beforeunload在IOS Safari中不起作用?》来自Winter(https://github.com/aiyld/aiyld.github.io)的站点

1条评论
hm 2018.08.21
你好,请问下ios safari 页面跳转,推荐使用什么方法?
Safari 推荐使用window.location = 'user_home.html';
Winter 2018.11.27