Изменение заголовка окна при фокусировке окна не работает в Chrome - PullRequest
11 голосов
/ 01 июня 2010

Я (ab) использую заголовок документа в качестве области уведомлений. Если рассматриваемая вкладка / окно не имеет фокуса в то время, когда я хочу уведомить пользователя о чем-либо, я изменяю заголовок окна, чтобы включить некоторое уведомление.

Когда окно / вкладка возвращается в фокус, я хочу удалить уведомление, то есть сбросить заголовок на стандартный. Однако этот сброс иногда не работает в Chrome.

Когда я прихожу из другого окна , заголовок корректно обновляется, но когда я прихожу с другой вкладки в том же окне , это не так.

Я нашел обходной путь для этого (я опубликую это как ответ), но, пожалуйста, поделитесь любыми другими идеями, которые могут вам понадобиться, чтобы это исправить.

Ответы [ 3 ]

14 голосов
/ 01 июня 2010

Это похоже на ошибку в Chrome, касающуюся фактического перерисовки заголовка вкладки, так как сам заголовок документа (то есть в DOM) фактически обновлен правильно.

Я полагаю, что изменение вкладки (из-за чего вкладка перемещается на передний план, следовательно, перерисовывается), а изменение заголовка в результирующем событии фокуса (которое также требует перерисовки) приводит к некоторому состоянию гонки.

Именно поэтому я попробовал этот обходной путь, который на самом деле работает:

window.setTimeout(function () { $(document).attr("title", newtitle); }, 200);

- просто подождите немного, прежде чем обновлять заголовок, чтобы два события перерисовки не конфликтовали друг с другом.Это, конечно, не красиво, но задержка в 0,2 секунды обычно не должна быть проблемой.

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

Несмотря на то, что tiftik сказал, что эта ошибка исправлена, она все же произошла в моем Chrome (Версия 21).

Решение, предлагаемое Бальфой, тоже работает для меня, но имейте в виду, что не нужно устанавливать заголовок документа на новый заголовок в Focus и чем ждать 200 мс, чтобы установить его снова - это не сработает! (вероятно, потому что Chrome думает, что это тот же заголовок, поэтому он не будет обновляться)

Просто подождите 200 мс и установите его - отлично работает!

0 голосов
/ 26 августа 2012

Для дальнейшего использования: эта ошибка в настоящее время исправлена.

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