Событие изменения ориентации браузера Android продолжает - PullRequest
3 голосов
/ 28 октября 2010

Ниже приведен простой HTML-код, который при просмотре в браузере Android (Nexus One) приводит к непрерывной цепочке событий смены ориентации при изменении ориентации телефона только один раз.

<html><body>
<script type="text/javascript">
window.addEventListener("orientationchange",function(){alert("test");},false);
</script>
</body></html>
Может кто-нибудь объяснить и предложить какой-нибудь обходной путь?

Ответы [ 3 ]

4 голосов
/ 26 ноября 2010

directionalchange запускается скачкообразно: при открытии диалогового окна с предупреждением или при открытии меню браузера оно запускается, и оно часто срабатывает более одного раза.Таким образом, открытие меню предупреждений приводит к возникновению цикла событий, что означает, что браузер необходимо убить вручную - ему не хватает даже базовой защиты от циклов предупреждений, и это делает меню недоступным.

(я не понимаюлюбой рабочий браузер, который может быть удален while(1) alert("");. Поскольку, когда удаленный код JavaScript является доверенным? Это наиболее очевидная клиентская DoS, и она происходит непреднамеренно все время, но многие крупные браузеры не обращают на это внимания. Opera - единственный браузерЯ знаю, что обрабатывает это правильно, делая оповещения модальными для окна просмотра, а не для самого браузера.)

0 голосов
/ 09 января 2013

Похоже, что эти устройства вызывают событие 'directioniation' до изменения размера окна, чтобы отразить новую ориентацию.

Как это исправить: github

0 голосов
/ 28 октября 2010

Я думаю, что Фальмарри означает, что по умолчанию это то, что происходит.Вы можете предотвратить это и прислушиваться к изменениям конфигурации в вашей активности, а затем повернуть экран самостоятельно, после чего активность не перезапускается.Смотрите эту серию о вращении .

...