Document#

Wstęp#

Interfejs Document stanowi definicję Web IDL dla jednego z węzłów występujących w drzewie węzłów. Obiekty typu Document są potocznie nazywane dokumentami # (documents) i skojarzone zostały z kilkoma podstawowymi zagadnieniami.

Interfejs Document gromadzi w swojej definicji najbardziej ogólne właściwości i metody, które będą miały zastosowanie dla dowolnego dokumentu obsługiwanego przez technologię DOM, niezależnie od jego typu. Dzięki wyodrębnieniu tych poleceń do osobnego interfejsu nie ma potrzeby dublowania tych samych opisów w każdym interfejsie, który mógłby po nim dziedziczyć (np. XMLDocument).

Obecnie dąży się do sytuacji, w której wszystkie dokumenty będą używały jedynie interfejsu Document, a ich specyficzny charakter mają wyrażać wewnętrzne stany (np. typ czy typ zawartości). Jest to wyjątkowo inwazyjna zmiana i nie wiadomo czy kiedykolwiek dojdzie do skutku (szczegóły).

Kolejne specyfikacje mogą bezpośrednio rozszerzać interfejs Document o dodatkowe polecenia. Oto kilka z nich:

W ujęciu programistycznym dokumenty są obiektami najwyższego rzędu i to właśnie one reprezentują każdy kompletny dokument. Obiekt ten z całą swoją bezpośrednią zawartością tworzy drzewo dokumentu (drzewo DOM), czyli bardziej skonkretyzowane drzewo węzłów. W drzewach tych węzły typu Document są utożsamiane z ich korzeniami. Dokumenty mogą być także właścicielami dla wszystkich pozostałych rodzajów węzłów.

Interfejs Document dziedziczy po interfejsie Node, dlatego ma dostęp do wszystkich poleceń z tego interfejsu (oraz z kolejnych interfejsów w łańcuchu dziedziczenia). Interfejs Document bezpośrednio implementuje kolejny interfejs ParentNode ze wszystkimi jego podstawowymi zagadnieniami i poleceniami.

Dokument można utworzyć za pomocą różnych poleceń definiowanych w kilku specyfikacjach, chociaż ich jednolita implementacja w aktualnych przeglądarkach internetowych pozostawia wiele do życzenia:

Właściwości Document#

NazwaOpis
Document.characterSetZwraca nazwę z kodowania stosowanego w danym dokumencie.
Document.charsetZwraca nazwę z kodowania stosowanego w danym dokumencie.
Document.compatModeZwraca informację pozwalającą ustalić tryb renderowania dla danego dokumentu.
Document.contentTypeZwraca typ zawartości dla danego dokumentu.
Document.doctypeZwraca deklarację typu dokumentu dla danego dokumentu.
Document.documentElementZwraca element dokumentowy dla danego dokumentu.
Document.documentURIZwraca adres URL dla danego dokumentu.
Document.implementationZwraca implementację DOM dla danego dokumentu.
Document.inputEncodingZwraca nazwę z kodowania stosowanego w danym dokumencie.
Document.originZwraca pochodzenie dla danego dokumentu.
Document.URLZwraca adres URL dla danego dokumentu.

Metody Document#

NazwaOpis
Document.adoptNode()Adoptuje (na zasadzie przenoszenia) przekazany węzeł z innego dokumentu do danego dokumentu i zwraca referencję do adoptowanego węzeł.
Document.createAttribute()Tworzy nowy atrybut z określoną nazwa lokalną dla danego dokumentu.
Document.createAttributeNS()Tworzy nowy atrybut z określoną przestrzenią nazw i nazwą kwalifikowaną dla danego dokumentu.
Document.createComment()Tworzy nowy węzeł komentarzowy z określonymi danymi tekstowymi dla danego dokumentu.
Document.createDocumentFragment()Tworzy nowy fragment dokumentu dla danego dokumentu.
Document.createElement()Tworzy nowy węzeł elementowy z określoną nazwą lokalną dla danego dokumentu.
Document.createElementNS()Tworzy nowy węzeł elementowy z określoną przestrzenią nazw i nazwą kwalifikowaną dla danego dokumentu.
Document.createEvent()Tworzy nowe zdarzenie o określonym ogólnym interfejsie zdarzenia dla danego dokumentu.
Document.createNodeIterator()Tworzy nowego iterator węzłowego z określonym korzeniem, maską bitową i filtrem dla danego dokumentu.
Document.createProcessingInstruction()Tworzy nową instrukcję przetwarzania z określonym celem i danymi tekstowymi dla danego dokumentu.
Document.createRange()Tworzy nowy zakres dla danego dokumentu.
Document.createTextNode()Tworzy nowy węzeł tekstowy z określonymi danymi tekstowymi dla danego dokumentu.
Document.createTreeWalker()Tworzy nowego przemierzacza drzewa z określonym korzeniem, maską bitową i filtrem dla danego dokumentu.
Document.getElementsByClassName()Zwraca kolekcję elementową ze wszystkimi węzłami elementowymi o określonych klasach znajdującymi się w danym dokumencie.
Document.getElementsByTagName()Zwraca kolekcję elementową ze wszystkimi węzłami elementowymi o określonej nazwie kwalifikowanej znajdującymi się w danym dokumencie.
Document.getElementsByTagNameNS()Zwraca kolekcję elementową ze wszystkimi węzłami elementowymi o określonej nazwie lokalnej i przestrzeni nazw znajdującymi się w danym dokumencie.
Document.importNode()Importuje (na zasadzie kopiowania) przekazany węzeł z innego dokumentu do danego dokumentu i zwraca referencję do zaimportowanego węzeł.

Inne Document#

NazwaOpis
new Document()Konstruktor tworzący nowy pusty dokument (wewnętrznie dokument HTML).

Składnia Web IDL#

  1. L
  2. K
  3. T'
  4. T
  5. A
  6. O
  7. Z'
  8. Z
  9. #
[Constructor]
interface Document # : Node {
	[SameObject] readonly attribute DOMImplementation implementation;
	readonly attribute DOMString URL;
	readonly attribute DOMString documentURI;
	readonly attribute DOMString origin;
	readonly attribute DOMString compatMode;
	readonly attribute DOMString characterSet;
	readonly attribute DOMString charset; // historical alias of .characterSet
	readonly attribute DOMString inputEncoding; // historical alias of .characterSet
	readonly attribute DOMString contentType;

	readonly attribute DocumentType? doctype;
	readonly attribute Element? documentElement;
	HTMLCollection getElementsByTagName(DOMString qualifiedName);
	HTMLCollection getElementsByTagNameNS(DOMString? namespace, DOMString localName);
	HTMLCollection getElementsByClassName(DOMString classNames);

	[NewObject] Element createElement(DOMString localName);
	[NewObject] Element createElementNS(DOMString? namespace, DOMString qualifiedName);
	[NewObject] DocumentFragment createDocumentFragment();
	[NewObject] Text createTextNode(DOMString data);
	[NewObject] Comment createComment(DOMString data);
	[NewObject] ProcessingInstruction createProcessingInstruction(DOMString target, DOMString data);

	Node importNode(Node node, optional boolean deep = false);
	Node adoptNode(Node node);

	[NewObject] Attr createAttribute(DOMString localName);
	[NewObject] Attr createAttributeNS(DOMString? namespace, DOMString qualifiedName);

	[NewObject] Event createEvent(DOMString interface);

	[NewObject] Range createRange();

	// NodeFilter.SHOW_ALL = 0xFFFFFFFF
	[NewObject] NodeIterator createNodeIterator(Node root, optional unsigned long whatToShow = 0xFFFFFFFF, optional NodeFilter? filter = null);
	[NewObject] TreeWalker createTreeWalker(Node root, optional unsigned long whatToShow = 0xFFFFFFFF, optional NodeFilter? filter = null);
};

Document implements ParentNode;

Specyfikacje i inne materiały#

Pasek społecznościowy

SPIS TREŚCI AKTUALNEJ STRONY

Document (H1) Wstęp (H2) Właściwości Document (H3) Metody Document (H3) Inne Document (H3) Składnia Web IDL (H3) Specyfikacje i inne materiały (H3)