DOMTokenList#

DOMTokenList.supports()#

Metoda supports() zwraca boolowską wartość true jeśli przekazane słowo znajduje się w obsługiwanych słowach zdefiniowanych dla nazwy lokalnej jakiegoś atrybutu skojarzonej z danym zestawem słów DOM, w przeciwnym razie zwrócona zostanie wartość false.

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 supported = domTokenList.supports(token);

gdzie poszczególne człony oznaczają:

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

  1. Niech result będzie wynikiem zwracanym przez kroki walidacji dla obiektu kontekstu i token. Zrzuć ponownie każdy wyjątek.
  2. Zwróć result.

Metoda supports() pozwala w wygodny sposób wykrywać obsługę niektórych opcji ustawianych za pomocą konkretnych wartości przewidzianych dla atrybutu skojarzonego z zestawem słów DOM. Nie wszystkie atrybuty reprezentowane przez zestaw słów DOM operują na wartościach, które mają wpływ na proces przetwarzania przez przeglądarki, dlatego też w ich przypadku obsługiwane słowa nie występują i próba wywołania metody supports() zawsze zrzuci błąd.

Prosty przykład:

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

	var html = document.documentElement; // referencja do elementu html
	var link = document.createElement("link"); // referencja do elementu link
	var iframe = document.createElement("iframe"); // referencja do elementu iframe

	document.write(link.relList.supports("icon")); // true
	document.write("<br>");
	document.write(link.relList.supports("stylesheet")); // true
	document.write("<br>");
	document.write(link.relList.supports("prefetch")); // true
	document.write("<br>");
	document.write(link.relList.supports("alternate")); // true
	document.write("<br>");
	document.write(link.relList.supports("ALTERNATE")); // true
	document.write("<br>");
	document.write(link.relList.supports("tag")); // false
	document.write("<br>");
	document.write(link.relList.supports("test")); // false
	document.write("<br>");
	document.write(link.relList.supports("")); // false

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

	document.write(iframe.sandbox.supports("allow-forms")); // true
	document.write("<br>");
	document.write(iframe.sandbox.supports("allow-scripts")); // true
	document.write("<br>");
	document.write(iframe.sandbox.supports("allow-same-origin")); // true
	document.write("<br>");
	document.write(iframe.sandbox.supports("ALLOW-SAME-ORIGIN")); // true
	document.write("<br>");
	document.write(iframe.sandbox.supports("test")); // false
	document.write("<br>");
	document.write(iframe.sandbox.supports(" ")); // false

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

	try{ // Sprawdzamy istnienie obsługiwanych słów w elemencie HTML
		html.classList.supports("");
	}
	catch(e){
		document.write("Wywołanie metody contains() na elemencie HTML zrzuca błąd:" + "<br>");
		document.write(e); // opis zależny od przeglądarki
		document.write("<br>");
		document.write(e.constructor); // function TypeError() { [native code] }
	}

</script>

Na chwilę obecną jedynie przeglądarki Firefox i Chrome zaimplementowały metodę supports(), ale tylko dla niektórych atrybutów i nie wszystkich zdefiniowanych dla nich obsługiwanych słów.

Metoda supports() 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 DOMTokenList {
	boolean supports(DOMString token);
}

Specyfikacje i inne materiały#

Pasek społecznościowy

SPIS TREŚCI AKTUALNEJ STRONY

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