Недавно я выяснил, что событие onbeforeunload
не поддерживается на устройствах IOS. Я также сделал некоторые исследования и пробовал другие события, такие как событие pagehide
но он также не работал. То, что я пытаюсь достичь, - сохранить некоторые данные в локальном хранилище, прежде чем покинуть страницу. Он отлично работает для окон и Android, но не для устройств IOS. Это код:
window.onbeforeunload = function(e){
save_something_in_local_storage();
};
Я мог бы также идентифицировать устройства IOS с:
var iOS = /iPad|iPhone|iPod/.test(navigator.userAgent) && !window.MSStream;
Попытка других событий, таких как, например, screenhide, также не будет работать:
window.addEventListener("pagehide", function(evt){
alert('pagehide');
}, false);
Кто-нибудь знает обходное решение для IOS?
pagehide
работает правильно для устройств iOS. Проблема заключается в вызове alert
, см. qaru.site/questions/179962/.... Просто попробуйте сохранить данные в localStorage
.
Попытайтесь сохранить данные после события focusout
(если у вас есть вход). И после успеха экономии, очистите localstorage