Как сделать так, чтобы скрытый плавающий загрузочный элемент снова скрывался со страницы после нажатия кнопки «Назад» в мобильном сафари?

Это проблема только iOS.

У меня есть плавающий скрытый div с «... загрузкой», который появляется на текущей странице при переходе по ссылкам в приложении. Это снова скрыто по умолчанию на следующей странице. Проблема в том, что когда пользователь затем нажимает кнопку «Назад», он снова появляется, не скрываясь, в мобильном сафари. Это не проблема в настольных браузерах.

Этот код ниже работает на настольных компьютерах Firefox, Chrome и Safari, но не на мобильных устройствах Safari на iO5, iPhone и iPad.

<body style="margin: 0; padding: 0" onunload="$('#loading').hide()"  onload="setTimeout(function() { window.scrollTo(0, 1) }, 100);"> 

Есть предположения?


person Jack    schedule 24.10.2011    source источник
comment
onunload ненадежен во всех браузерах, кроме IE. Кроме того, поскольку вы используете jQuery, нет необходимости иметь какой-либо встроенный JavaScript.   -  person Sparky    schedule 24.10.2011


Ответы (1)


Для Safari на iOS вы можете сделать это:

window.addEventListener('popstate', function(e) {$('#loading').hide()}); 

На основе этого ответа: Существует ли альтернативный метод использовать onbeforeunload в мобильном сафари?

person Sjors Provoost    schedule 24.10.2011