Document#
Document.doctype#
Właściwość doctype
zwraca deklarację typu dokumentu dla danego dokumentu. Jeśli dokument nie posiada deklaracji typu dokumentu to zwrócona zostanie wartość null
. Właściwość jest tylko do odczytu.
Opis działania#
Samo wywołanie i poszczególne jego części najlepiej objaśnić na zapisie składniowym:
var dtd = document.doctype;
gdzie poszczególne człony oznaczają:
- dtd - deklaracja typu dokumentu w dokumencie lub wartość
null
. - document - dokument będący obiektem kontekstu.
W zależności od podejmowanej akcji muszą zostać wykonane następujące kroki:
Odczyt wartości atrybutu (getting):
Zwróć dziecko z obiektu kontekstu, które jest węzłem typu
DocumentType
(jeśli istnieje), w przeciwnym razie zwróć wartośćnull
.
Obiekt zwracany przez właściwość doctype
implementuje interfejs DocumentType, dlatego ma dostęp do wszystkich poleceń z tego interfejsu (oraz z kolejnych interfejsów w łańcuchu dziedziczenia).
Więcej szczegółów związanych z deklaracjami typów dokumentów umieściłem w zbiorczym dziale "Podstawy - Rodzaje dokumentów".
Prosty przykład:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<script>
function getInfoDoc(desc, whatDoc){
doc.write(desc + "<br>");
doc.write("Interfejs: " + whatDoc + "<br>");
doc.write("doctype: " + whatDoc.doctype + "<br>");
if (whatDoc.doctype){
doc.write("doctype.name: " + whatDoc.doctype.name + "<br>");
doc.write("doctype.publicId: " + whatDoc.doctype.publicId + "<br>");
doc.write("doctype.systemId: " + whatDoc.doctype.systemId + "<br>");
}
doc.write("<br>");
}
var doc = document; // domyślny dokument tworzony przez parser HTML
getInfoDoc("Parametry dla domyślnego dokumentu tworzonego przez parser HTML (właściwość document):", doc);
var newDocXML = doc.implementation.createDocument(null, null, null); // nowy dokument XML
getInfoDoc("Parametry dla createDocument(null, null, null):", newDocXML);
var newDocHTML = doc.implementation.createHTMLDocument(""); // nowy dokument HTML
getInfoDoc("Parametry dla createHTMLDocument(''):", newDocHTML);
</script>
</html>
Składnia Web IDL#
interface Document : Node { readonly attribute DocumentType? doctype; };