beforeunload在IOS Safari中不起作用?

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!
    ...
} );
hm2018/08/21 11:31:27
你好,请问下ios safari 页面跳转,推荐使用什么方法?
Safari 推荐使用window.location = 'user_home.html';
Winter2018/11/27 10:47:40