如何在IOS设备上离开页面之前在本地存储中保存数据?

时间:2017-06-08 12:21:34

标签: javascript ios local-storage onbeforeunload

我最近发现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的解决方法吗?

2 个答案:

答案 0 :(得分:0)

尝试在focusout事件后保存数据(如果有输入)。保存成功后,清理localstorage

答案 1 :(得分:0)

pagehide在iOS设备上正常运行。问题出在alert调用中,请参阅https://stackoverflow.com/a/9325742/3386279。只需尝试将数据保存在localStorage中即可。