Когда открывается окно предупреждения, фокус удаляется из текстового поля.Обратите внимание, что окно оповещения «BLUR» открывается прямо над окном оповещения «FOCUS» (последнее открывается первым), поэтому оно выглядит так, как будто onblur
срабатывает до onfocus
.
Посмотрите на моя тестовая страница , которая увеличивает счетчик при вызове любого из обработчиков событий, а также добавляет второе окно предупреждения после обоих остальных.Кажется, что Firefox фактически начинает выполнять обработчик размытия, как только открывается окно оповещения из обработчика фокуса, несмотря на концептуальную однопоточную модель браузера.Однако, когда первое окно оповещения (фокус) закрыто, второе окно оповещения (размытие) также необходимо закрыть до того, как откроется третье окно оповещения (после фокусировки).
Я не знаю, почему Firefox делаеттак оно и есть.Chrome продолжает запускать обработчик фокуса снова и снова, а Opera, Safari и IE делают это так, как вы ожидаете - не отвлекая фокус текстового поля.
РЕДАКТИРОВАТЬ: Я имеюнашел https://bugzilla.mozilla.org/show_bug.cgi?id=31889 и будет публиковать этот тестовый пример - очевидно, он был еще хуже.