2010-06-01 18 views
11

Jestem (ab) używanie tytułu dokumentu jako pewnego rodzaju obszaru powiadomień. Jeśli dana zakładka/okno nie ma fokusu w momencie, gdy chcę powiadomić użytkownika o czymś, zmieniam tytuł okna tak, aby zawierał pewne powiadomienia.Zmiana tytułu okna podczas ustawiania ostrości okna nie działa w przeglądarce Chrome

Po ponownym ustawieniu okna/karty chcę usunąć powiadomienie, tj. Zresetować tytuł do standardu. To resetowanie czasami jednak nie działa w Chrome.

Kiedy pochodzą z innym oknie, tytuł zostanie zaktualizowany poprawnie, ale kiedy pochodzą z inną kartę w tym samym oknie, że nie.

Znalazłem obejście tego problemu (opublikuję to jako odpowiedź), ale proszę podziel się wszelkimi innymi pomysłami, aby rozwiązać ten problem.

Odpowiedz

14

Wygląda na to, że jest to błąd w Chrome, dotyczący rzeczywistego przerysowania tytułu karty, ponieważ sam tytuł dokumentu (np. W DOM) jest właściwie aktualizowany.

Przypuszczam, że zmiana zakładki (która powoduje przejście karty na pierwszy plan, a tym samym jej przerysowanie) i zmiana tytułu w wynikowym fokusie (który również wymaga odświeżenia) powoduje pewien stan wyścigu.

Dlatego próbowałem tego obejścia, co robi w rzeczywistości pracy:

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

– tylko czekać na krótki czas przed aktualizacją tytuł, więc dwa przerysować zdarzenia nie kolidowały ze sobą. Oczywiście nie jest to ładne, ale 0,2-sekundowe opóźnienie nie powinno zwykle stanowić problemu.

+0

auto-akceptująca tę odpowiedź; ale możesz publikować lepsze poprawki/obejścia; Nadal mogę zmienić zaakceptowaną odpowiedź: – balpha

+2

'$ (document) .attr ('title', newtitle)'? 'document.title = newtitle' jest prostsze. – nyuszika7h

+0

@ Nyuszika7H: Myślę, że faktycznie używam 'document.title = newtitle' (właściwie myślę, że próbowałem obu, aby wykluczyć możliwość problemu z jQuery). Tak czy owak, kogo to obchodzi? Obie prace, obie są jasne, obie robią to samo. – balpha

0

Do wykorzystania w przyszłości: ten błąd został naprawiony.

+1

Interesujące; masz referencje? – balpha

+1

Chrome 28: nie jest. – poitroae

+1

Chrome 29.0.1547.57 m - Nie ustalony – nakib

1

Chociaż tiftik powiedział, że ten błąd jest naprawiony, to wciąż dzieje się w moim Chrome (wersja 21).

Rozwiązanie dla mnie oferowało również balpha - ale pamiętaj, aby nie ustawiać tytułu dokumentu na nowy tytuł na Focusie, a następnie czekać 200 ms, aby ustawić go ponownie - To nie zadziała! (prawdopodobnie dlatego, że Chrome uważa, że ​​jest to ten sam tytuł, więc nie zaktualizuje się)

Po prostu poczekaj 200 ms i ustaw to - działa dobrze!

Powiązane problemy