manipulacja treścią stron XHTML za pomocą JavaScriptu
Data: 18 marzec 2008
Identyfikator: 080447
Możliwości JavaScriptu wykraczają daleko poza tworzenie animacji wizualnie ożywiających witrynę. Zastosowany do przetwarzania plików XML stanowi podstawę popularnej dziś techniki AJAX. U jej podstaw leży zaś bardzo przydatna funkcja – dynamiczna zmiana zawartości stron, bo przecież XHTML to też XML.
Strona 1 z 2
Strona XHTML jest poprawna nie tylko wtedy, gdy ładnie wygląda, a poszczególne elementy nie rozsuwają się w którejś przeglądarce. Poprawny dokument to ten, którego spójność zachowana jest na poziomie semantyki kodu. To zaś już niełatwe zadanie, ponieważ przysparza webmasterom wielu problemów. Co to oznacza w praktyce?
Ogólnie mówiąc, poprawne używanie znaczników, ale rozumiane na wielu płaszczyznach. Po pierwsze, stosowanie np. nagłówków (tagi <h1>, <h2> etc.) zgodnie ze znaczeniem obejmowanego przez nie tekstu na stronie (czyli po nagłówku pierwszego rzędu nie powinien bezpośrednio występować nagłówek rzędu trzeciego/czwartego). Po drugie, co wciąż nie jest na 100 proc. przestrzegane, kolejność znaczników otwarcia i zamknięcia elementów powinna być ściśle zachowana, zgodnie z wytycznymi standardu XHTML, co oznacza choćby pełne zawieranie się jednych tagów wewnątrz innych.
Na niespójność – DOM
JavaScript od dawna pozwalał na wstawianie w kodzie już wyświetlonej strony nowej treści – początkowo poleceniem document.write() wykonywanym w miejscu, gdzie treść miała być dodana. Metoda ta, prosta i skuteczna, ma jednak poważną wadę: nie zapewnia kontroli nad spójnością kodu strony. Oczywiście, jeśli stosowana będzie do wklejenia prostego komunikatu:
document.write(„<p>Uwaga!</p>”);
ryzyko wprowadzenia błędu jest znikome. Jednak wyobraźmy sobie rozbudowany skrypt tworzący np. wykaz elementów na stronie – trudno będzie ręcznie zapanować nad kolejnością znaczników.
Właśnie dlatego stworzono DOM (Document Object Model) – warstwę abstrakcji pozwalającą operować na reprezentacji kodu XHTML, a nie na kodzie jako takim. Java-
Script wyposażono zaś w narzędzia ułatwiające te czynności, choć w porównaniu z użyciem document.write() mogą się one wydać niesamowitym przerostem formalizmu. Zobaczmy zatem, jak stworzyć dynamiczny spis treści na stronie.
Budowa i zarządzanie drzewem DOM
Poprawna strona XHTML ma znaczniki ułożone w strukturze drzewiastej. Wierzchołkiem jest #document, wirtualny węzeł reprezentujący cały dokument, jego jedynym dzieckiem oczywiście <html>, jego dziećmi – <head> i <body> itd. Taka zależność oznacza łatwość operacji na wybranych elementach. Po drzewie można swobodnie nawigować, odnajdując rodziców (parents) wybranego obiektu, iterować po jego dzieciach (children), a także sąsiadach, dzieciach tego samego rodzica (siblings). Reprezentację strony z oznaczeniami wzajemnych ról obiektów przedstawia ilustracja otwierająca artykuł.
Taki podział oznacza także, że pojedynczy tag jest najmniejszą jednostką, którą można operować z poziomu drzewa DOM. Jednocześnie usunięcie wybranego obiektu usuwa wszystkie jego dzieci. Warto pamiętać przy tym, że zgodnie ze specyfikacją XHTML nawet elementy nieujęte explicite znacznikiem są domyślnie opakowywane tzw. anonimowym tagiem. W taki sposób potraktowany będzie np. łańcuch „Hej!” w poniższym kodzie:
<p>Krótkie powitanie: </p>
Hej!
<p>…i wracamy do rzeczy </p>
Ocena: 



(aby ocenić, musisz się zalogować w serwisie)
Podobne artykuły: