Strona główna HTML i javascript C++ Hardware HTML i javascript Java Software SQL

Javascript – innerHTML czemu nie stosować.

Dodano: 2012-02-03

Stosowanie innerHTML wydaje się bardzo dobrym rozwiązaniem i jednocześnie najszybszym, niestety brak jego ujęcia w standardach powoduje, że w niektórych przypadkach przyczynia się do nieprawidłowego działanie skryptów javascript, a co za tym idzie nieoczekiwanego zachowania strony www.

Osobiście przyznaje się (bez bicia :), że dosyć często wykorzystywałem innerHTML. Jednak wraz z nabieraniem doświadczenia, zainteresowałem się innymi sposobami obróbki elementów i zacząłem je wykorzystywać tzn. appendChild, removeChild.

Po wykorzystaniu innerHTML do dodania elementu na stronie, zaburzamy hierarchie DOM w tak znaczącym stopniu, że zarejestrowanie zdarzenia nie będzie możliwe, natomiast dalsze wykonanie kodu nie związane z dodaniem reakcji na działanie na stronie będzie, lub może działać poprawnie. Sprawić to może dużo problemów koderowi.

Przykład błędu, który może pojawić się w czasie użycia innerHTML. Po dodaniu elementu tzn. tagu np.: div na stronę, za pomocą: document.getElementById([idElem]).innerHTML, a następnie próbie zarejestrowania zdarzenia, za pomocą addEventListner() (trochę o zdarzeniach), można być niemile zaskoczonym brakiem reakcji na działanie użytkownika, chociaż dalszy kod javascript zostanie wykonany prawidłowo.

W nowo tworzonych skryptach unikaj stosowania innerHTML, chociaż wydawałby się to sposób szybszy i łatwiejszy. Korzystając z gotowych rozwiązań, które korzystają z tego niestandaryzowanego sposobu, odpowiednio je przekoduj i przetestuj.