Возможно ли изменить DOM в обработчике beforeunload? Chrome, похоже, применяет модификации DOM после пользователь нажал «остаться» в браузере, чтобы оставить страницу, и я хочу, чтобы часть страницы была скрыта. пока это предупреждение видно.изменение DOM в beforeunload в Chrome
Смотреть демо:
<script>
window.onbeforeunload = function(e){ document.getElementById('a').style.display = "none"; e.returnValue = "adios";}
</script>
<div id=a >This text should disappear when the user tries to leave the page</div>
https://jsfiddle.net/qmatic/6sLp7rmq/
Единственное решение, которое я до сих пор является анимировать дел до непрозрачности: 0 и иметь код в setInterval, который постоянно сбрасывает эту анимацию. Пока код работает, div всегда отображается. Chrome останавливает весь код, когда он показывает предупреждение, поэтому анимация, наконец, работает до конца и скрывает div. Но это ужасное решение - я постоянно обновляю DOM для сброса анимации. У кого-нибудь есть лучшие идеи?
Вы пытались изменить css ** перед тем, как ** установить обработчик событий вместо того, чтобы делать это внутри обработчика? – Gunnar
Когда мне это делать? Я реагирую на пользователя, пытающегося покинуть страницу. Как узнать, что пользователь пытается покинуть страницу (например, набрав что-то в адресной строке) перед тем, как будет запущена перезагрузка перед загрузкой? – Anton