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:
var boolean = domImplementation.hasFeature();
gdzie poszczególne człony oznaczają:
- boolean - boolowskie
true
. - domImplementation - implementacja DOM będąca obiektem kontekstu.
Algorytm wywołania metody hasFeature()
nie jest skomplikowany. Dla lepszego zrozumienia tematu prezentuję go w całości:
- 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:
<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#
interface DOMImplementation { boolean hasFeature(); // useless; always returns true };