DOMImplementation#

DOMImplementation.hasFeature()#

Metoda hasFeature() zwraca boolowską wartość true. Nie ma ona żadnego praktycznego zastosowania i w zasadzie pozostawiono ją jedynie ze względu na kompatybilność wsteczną.

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 boolean = domImplementation.hasFeature();

gdzie poszczególne człony oznaczają:

Algorytm wywołania metody hasFeature() nie jest skomplikowany. Dla lepszego zrozumienia tematu prezentuję go w całości:

  1. Zwróć boolowską wartość true.

Metoda hasFeature() została całkowicie przedefiniowana w specyfikacji DOM4. Pierwotnie służyła do sprawdzenia, czy aplikacje klienckie wspierają poszczególne moduły DOM. Z praktycznego punktu widzenia okazało się jednak, że sposób ten nie spełnił pokładanych w nim nadziei. Uniwersalniejsze i wygodniejsze jest po prostu sprawdzenie, czy żądane obiekty, właściwości lub metody istnieją w danych okolicznościach. Metoda nie powinna być już stosowana w takim kontekście, ale nadal istnieje i za każdym razem zwraca boolowską wartość true, dzięki czemu nie ma istotnego wpływu na działanie przestarzałego kodu.

Prosty przykład:

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

	// Wyniki uzyskane w przeglądarce Opera 12.x

	document.write(document.implementation.hasFeature("org.w3c.svg", "")); // true
	document.write("<br>");
	document.write(document.implementation.hasFeature("org.w3c.svg", null)); // true
	document.write("<br>");
	document.write(document.implementation.hasFeature("org.w3c.svg", "1.0")); // true
	document.write("<br>");
	document.write(document.implementation.hasFeature("org.w3c.svg", "1.1")); // true

	document.write("<br><br>");

	document.write(document.implementation.hasFeature("org.w3c.svg.animation", "1.0")); // true
	document.write("<br>");
	document.write(document.implementation.hasFeature("org.w3c.svg.animation", "1.1")); // true
	document.write("<br>");
	document.write(document.implementation.hasFeature("org.w3c.svg.animation", "2")); // false
	document.write("<br>");
	document.write(document.implementation.hasFeature("", "")); // false

</script>

Na chwilę obecną jedynie przeglądarka Chrome obsługuje metodę hasFeature() zgodnie z najnowszymi wymaganiami specyfikacji DOM4. Pozostałe przeglądarki działają jeszcze według starszych wymagań, chociaż i tak żadna z nich nie robi tego prawidłowo. Wystarczy uruchomić powyższy przykład w różnych programach.

Składnia Web IDL#

  1. L
  2. K
  3. T'
  4. T
  5. A
  6. O
  7. Z'
  8. Z
  9. #
interface DOMImplementation {
	boolean hasFeature(); // useless; always returns true
};

Specyfikacje i inne materiały#

Pasek społecznościowy

SPIS TREŚCI AKTUALNEJ STRONY

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