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 };