Według HTML5 CR element title
jest to wymagane, chyba że „dokument jest dokumentem iframe srcdoc lub informacja tytułowa jest dostępny protokół nadrzędnego” (co podano w opisie head
element) .
Możliwe jest ustawienie tytułu w JavaScript przez przypisanie do document.title
, w praktyce i zgodnie z HTML5 CR. Oczywiście jest to nieskuteczne w przypadku wielu ważnych zastosowań tego tytułu, ponieważ odbywa się to tylko w przeglądarce.
HTML5 CR określa również, że title
element nie może być pusty lub zawierać tylko spację. Dokładniej, treść musi być tekstem, który nie jest inter-element whitespace.
Nie ma odpowiedniego wymagania dla wartości document.title
. Jednak HTML5 określa, że przy przypisywaniu, prowadzeniu i kończeniu białych znaków jest usuwany. Jeśli przetestujesz wartość document.title
po przypisaniu document.title = " "
, zobaczysz, że wartość jest pustym ciągiem, a nie spacją.
Przeglądarki różnią się pod względem tego, co robią z tytułem dokumentu (ustawiane za pomocą elementu <title>
lub przez przypisanie do document.title
). Mogą wyświetlać go na różne sposoby w interfejsie użytkownika. Jeśli tytuł jest ustawiony na pusty ciąg znaków lub nie jest ustawiony w ogóle, to przeglądarki zamiast nazywać stosują nazwę pliku dokumentu, ewentualnie jakoś zmodyfikowaną. Tak się dzieje np. w przeglądarce Chrome, Firefox i IE (w systemie Windows), gdy wyświetlają tytuł dokumentu jako nazwę karty. (Nie wiem, co to pytanie oznacza, mówiąc, że ustawienie tytułu puste "działa" w IE i Chrome.)
W większości przypadków pusty tytuł dokumentu nie ma sensu, tak samo jak nie ma sensu opublikować książkę bez nazwy. Ale jeśli masz przypadek użycia, w którym chcesz utworzyć tytuł (jak pokazują przeglądarki w niektórych kontekstach), możesz wdrożyć różne sztuczki.
Na przykład NO-BREAK SPACE U + 00A0 nie jest z definicji białą spacją w HTML, więc można użyć <title> </title>
w HTML lub document.title='\u00A0'
w JavaScript. Tytuł będzie wyglądał jak pusty, ale technicznie nie jest pusty, więc będą używane przeglądarki.
Ponieważ NO-BREAK nadal zajmuje miejsce (jest naprawdę pokazane z glifem, tylko całkowicie pustym glifem), zamiast tego można użyć LEWEGO DO PRAWEGO MARKA U + 200E; jest to niewidzialny znak kontrolny o zerowej szerokości. W HTML, możesz użyć <title>‎</title>
. Alternatywnie możesz użyć document.title='\u200E'
w JavaScript.
Cóż, mam na myśli funkcje IE i Firefox, ustawienia tytułu skryptu, ale Chrome wciąż pokazuje nazwę pliku na karcie tytułu. Próbowałem twojej próbki z , która tworzy wszystkie przeglądarki z pustym tytułem :). Rozumiem standard W3C, od czasu do czasu znajduję różne tytuły parsujące w przeglądarkach. –
Jeszcze jedno pytanie.\ u200E nie jest ustawiony w ASCII. Powinien to być kod messey w chraset wit "us-ascii"; jednak wszystkie przeglądarki konwertują je poprawnie. Czemu? –
@Dotku, '\ u200E' jest analizowany przez interpreter JavaScript przeglądarki, zgodnie z regułami JavaScript. Parsowana postać jest następnie dołączana do ciągu znaków w DOM. Kodowanie znaków w dokumencie nie ma tutaj znaczenia; ma to znaczenie tylko w analizie HTML, która ma już miejsce podczas uruchamiania JavaScript. –