Document#

Document.compatMode#

Właściwość compatMode zwraca informację pozwalającą ustalić tryb renderowania dla danego dokumentu. 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:

  1. L
  2. K
  3. T'
  4. T
  5. A
  6. O
  7. Z'
  8. Z
  9. #
var mode = document.compatMode;

gdzie poszczególne człony oznaczają:

W zależności od podejmowanej akcji muszą zostać wykonane następujące kroki:

Odczyt wartości atrybutu (getting):

  1. Zwróć łańcuch znakowy "BackCompat" jeśli trybem w obiekcie kontekstu jest "quirks", w przeciwnym razie zwróć łańcuch znakowy "CSS1Compat".

Rozróżnienie między trybem bez dziwactw a ograniczonym trybem dziwactw nie jest dostępne wprost, ale można to ustalić poprzez bezpośrednią analizę deklaracji typu dokumentu (zgodnie z wymaganiami podawanymi przez Mozillę dla tego trybu renderowania).

Tryb renderowania można kontrolować tylko i wyłącznie z wykorzystaniem parsera HTML w trakcie tworzenia dokumentów HTML. Jest on niewygodną spuścizną po starszych specyfikacjach i implementacjach (głównie w przeglądarkach internetowych), które do dnia dzisiejszego wspierają jego różne warianty. W związku z tym nigdy nie należy zapominać o umieszczeniu w dokumentach HTML odpowiedniej deklaracji typu dokumentu (obecnie wystarczy uproszczona wersja <!DOCTYPE html>), która wymusi zastosowanie trybu bez dziwactw dla tego rodzaju dokumentów (szczegóły).

Prosty przykład:

  1. L
  2. K
  3. T'
  4. T
  5. A
  6. O
  7. Z'
  8. Z
  9. #
<script>

	function getInfoDoc(desc, whatDoc){

		doc.write(desc + "<br>");
		doc.write("Interfejs: " + whatDoc + "<br>");
		doc.write("compatMode: " + whatDoc.compatMode + "<br><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);

	try{
		var newDoc = new Document(); // nowy dokument
		getInfoDoc("Parametry dla new Document():", newDoc);
	}
	catch(e){
		doc.write("Brak obsługi konstruktora new Document() dlatego zrzucony zostanie błąd:" + "<br>");
		doc.write(e + "<br>"); // opis zależny od przeglądarki
		doc.write(e.constructor + "<br><br>"); // function TypeError() { [native code] }
	}

	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>

Właściwość compatMode pojawia się dopiero w specyfikacji DOM4.

Składnia Web IDL#

  1. L
  2. K
  3. T'
  4. T
  5. A
  6. O
  7. Z'
  8. Z
  9. #
interface Document : Node {
	readonly attribute DOMString compatMode;
};

Specyfikacje i inne materiały#

Pasek społecznościowy

SPIS TREŚCI AKTUALNEJ STRONY

Document (H1) Document.compatMode (H2) Opis działania (H3) Składnia Web IDL (H3) Specyfikacje i inne materiały (H3)