我最近发现IOS设备不支持onbeforeunload
事件。我也做了一些研究并尝试了其他事件,比如pagehide
事件,但它也没有用。我想要实现的是在离开页面之前将一些数据保存在本地存储中。它适用于Windows和Android,但不适用于IOS设备。这是代码:
window.onbeforeunload = function(e){
save_something_in_local_storage();
};
我还可以通过以下方式识别IOS设备:
var iOS = /iPad|iPhone|iPod/.test(navigator.userAgent) && !window.MSStream;
尝试其他事件(例如pagehide)也不起作用:
window.addEventListener("pagehide", function(evt){
alert('pagehide');
}, false);
任何人都知道IOS的解决方法吗?
答案 0 :(得分:0)
尝试在focusout
事件后保存数据(如果有输入)。保存成功后,清理localstorage
答案 1 :(得分:0)
pagehide
在iOS设备上正常运行。问题出在alert
调用中,请参阅https://stackoverflow.com/a/9325742/3386279。只需尝试将数据保存在localStorage
中即可。