2014-05-09 14 views
7

UżywamJak mogę mieć pustą stronę tytułową?

<!DOCTYPE html> 
<html> 
    <head> 
    <meta charset="UTF-8"/> 
    <script>document.title=" ";</script> 
    </head> 
</html> 

To działa w IE i Firefox, Chrome, ale nie działa. Cóż, w standardzie W3C. Wygląda na to, że pusty tytuł jest niedozwolony ?!

Aplikacje klienckie powinny używać tytułu dokumentu podczas odwoływania się do dokumentu w interfejsie użytkownika. Gdy zawartość elementu tytułowego jest używana w ten sposób, kierunkowość tego elementu tytułowego powinna być użyta do ustawienia kierunkowości tytułu dokumentu w interfejsie użytkownika.

Odpowiedz

17

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>&nbsp;</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>&lrm;</title>. Alternatywnie możesz użyć document.title='\u200E' w JavaScript.

+0

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. –

+0

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? –

+0

@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. –

Powiązane problemy