Почему происходит событие window.resize при смене вкладок в Chrome (6.0.472.55)? - PullRequest
8 голосов
/ 15 сентября 2010

Сегодня вечером я написал интересную функцию ошибка при написании обработчика для window.onresize в Chrome (последняя версия 6.0.472.55).Сначала откройте две вкладки, затем на первой вкладке откройте this jsFiddle .

Измените размер окна по своему желанию, и диалоговое окно будет работать как положено.Теперь попробуйте перейти на вторую вкладку -_-.Почему resize срабатывает при смене вкладки?Может ли кто-нибудь предоставить информацию / более подробную информацию, если мне нужно сообщить об ошибке?

Ответы [ 4 ]

3 голосов
/ 18 сентября 2010

Ошибка была подана в Google.В настоящее время я просто проигнорировал это, поскольку мой фактический обработчик onresize не отображает окна предупреждений.

1 голос
/ 26 сентября 2012

Из отчета об ошибке :

При использовании Dev Tools в splitview и переключении на вкладку без Dev Tools, открытых в split, событие resize-Event будет запущено.

Таким образом, если следующая вкладка не имеет такого же размера окна, будет запущено resize ().

1 голос
/ 15 сентября 2010

Ну как на счет этого?Похоже, ошибка.Я бы предположил, что onresize прослушивается комбинацией поведений, возможно, новыми данными о размере страницы, которые по какой-либо причине поступают, когда вкладка находится в фокусе.

В версии, которую я используюв Windows 5.0.375.127 этого не происходит, но если я на самом деле изменяю размер окна, событие resize запускается дважды .

Зная, что оно есть, вы можете сделать шаг, чтобы победитьэто (что Google должен сделать для вас в конце концов).Оберните оператор if вокруг вашего обработчика, который проверяет фактическое изменение в clientHeight или clientWidth, если вам нужно, чтобы что-то произошло, только если событие (как мы его понимаем) на самом деле происходит.

0 голосов
/ 15 сентября 2010

Без практического знания того, как Chrome управляет переключением вкладок и рендерингом страниц, мое предположение столь же хорошо (или плохо, в зависимости от того, как вы на это смотрите), как у следующего парня.Я полагаю, что повторная отрисовка страницы или перезагрузка уже обработанной страницы, если она кеширует ее, вызывает событие onresize.Это то, что происходит, когда вкладка переключается.Следуя моей теории, я предполагаю, что Chrome не вызывает событие изменения размера при начальном просмотре страницы, потому что оно было разработано, чтобы не делать этого.Но опять же, поскольку я не знаю, как Chrome внутренне управляет переключением вкладок, это всего лишь предположение (пища для размышлений).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...