Изменение заголовка окна при фокусировании окна не работает в Chrome

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

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

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

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

11
задан balpha 1 June 2010 в 18:47
поделиться

1 ответ

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

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

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

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

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

14
ответ дан 3 December 2019 в 08:02
поделиться
Другие вопросы по тегам:

Похожие вопросы: