Webseiten erstellen mit Javascript


Kapitel 1: Einführung


Inhaltsverzeichnis

Dieses Buch ist unter einer Creative Commons-Lizenz lizensiert.


1.1 Was ist Javascript

Scriptsprache fürs Internet

Javascript ist eine Programmiersprache. Wie jede Programmiersprache stellt Javascript Werkzeuge zur Verfügung, mit denen sich Informationen verarbeiten lassen. Wie bei jeder Programmiersprache hat es der Entwickler auch bei Javascript also grundsätzlich mit etwas recht Abstraktem zu tun - nämlich einfach nur mit Informationen.

Die Tatsache, dass Javascript eine Programmiersprache ist, bedeutet, dass sie sich nicht so einfach erlernen läßt wie beispielsweise HTML. Während das Ergebnis eines HTML-Tags anhand der Formatierung direkt am Bildschirm sichtbar wird und sich die Arbeit visuell überprüfen lässt, werden mit Programmiersprachen Programme entwickelt, in denen eine Informationsverarbeitung stattfindet.

In Javascript geht es also um Informationen und deren Verarbeitung. Informationen sind grundsätzlich abstrakt, und die Verarbeitung an sich ist ein dynamischer Vorgang. Daraus folgt, dass es nicht möglich ist, mal eben visuell ein Javascript-Programm zu überprüfen. Ob's richtig ist, zeigt bei HTML in Nullkommanix der Browser. Ob ein Javascript-Programm richtig arbeitet, müssen Testläufe zeigen, in denen überprüft werden muss, ob Informationen tatsächlich so verarbeitet werden wie man es sich vorstellt.

Weil Vorgänge zur Informationsverarbeitung normalerweise aus mehreren Schritten bestehen, die in einer ganz bestimmten Reihenfolge ausgeführt werden müssen und aufeinander aufbauen, ist die Programmierung an sich ein recht komplizierter Vorgang. Je größer das Programm, umso mehr Schritte zur Verarbeitung von Informationen sind notwendig. Je mehr Schritte, umso schwieriger wird es, Überblick zu bewahren, die Schritte in der richtigen Reihenfolge und jeweils vollständig auszuführen.

Aber keine Angst: Im Vergleich zu anderen Programmiersprachen ist Javascript harmlos. Die Entwickler dieser Programmiersprache haben Wert darauf gelegt, Javascript so einfach wie möglich zu machen, und auf aus anderen Programmiersprachen komplizierte Bestandteile weitestgehend verzichtet. Auch wenn Javascript auf den ersten Blick den Programmiersprachen C, C++ und Java sehr ähnelt, so ist sie bei weitem die einfachste dieser vier Sprachen.

Auch bestehen Javascript-Programme normalerweise aus sehr wenigen Code-Zeilen. Es müssen also nur wenige Schritte zur Informationsverarbeitung umgesetzt werden. Der Überblick geht hierbei in den seltensten Fällen verloren. Komplizierte Testläufe sind bei derart kleinen Programmen daher auch meist überflüssig.

Javascript ist eine besondere Programmiersprache, und zwar - wie bereits der Name sagt - eine Skriptsprache. Skriptsprachen sind Programmiersprachen, deren Programme nicht direkt von der Hardware, also vom Prozessor, ausgeführt werden, sondern von einem anderen Programm. Man spricht davon, dass Skriptsprachen interpretiert werden. Programme, die in einer Skriptsprache entwickelt sind, müssen also grundsätzlich immer im Zusammenhang mit einem Interpreter ausgeführt werden.

Javascript wird für gewöhnlich in Webseiten eingebettet. Javascript ist daher auch als Internet-Programmiersprache bekannt. Sie können in Javascript in einem beliebigen Editor, beispielsweise dem Windows-Standard-Editor Notepad, programmieren. Wenn Sie Ihren Quellcode geschrieben haben, müssen Sie ihn nicht noch anderweitig bearbeiten, sondern können ihn direkt an einen Interpreter übergeben. Zusätzliche Zwischenschritte wie beispielsweise in C, C++ oder Java die Kompilierung sind in Javascript nicht notwendig. Der Quellcode kann in der für Menschen lesbaren Form direkt an den Interpreter weitergegeben werden. Die direkte Weitergabe ohne ein vorheriges Umwandeln von Quellcode in eine andere Form ist auch genau Sinn und Zweck von Skriptsprachen und Interpretern.

Der Interpreter für Javascript-Programme ist normalerweise der Browser. Die heute am weitesten verbreiteten Browser beherrschen alle Javascript, so dass Sie davon ausgehen können, dass von Ihnen in Webseiten eingebettete Javascript-Programme grundsätzlich auch jeder Besucher ausführen kann. Dennoch kann es Browser geben, die Javascript nicht verstehen. Der ein oder andere Brower erlaubt darüberhinaus das Deaktivieren von Javascript, so dass sich der Browser verhält wie wenn er Javascript nicht verstehen würde.

In Abhängigkeit der Internet-Anwendung, die Sie entwickeln, müssen Sie entscheiden, ob Javascript ergänzend eingesetzt wird oder ob die Funktionalität voll und ganz von Javascript abhängt. Dies beeinflusst natürlich, ob ein Besucher mit einem Browser, der Javascript nicht ausführt, Ihre Anwendung nutzen, teilweise nutzen oder eben überhaupt nicht nutzen kann.

Als Pi-mal-Daumen-Regel gilt: 90 Prozent aller Internet-Nutzer können Javascript-Programme ausführen.


1.2 Javascript und HTML

Dynamische Verarbeitung statt statischer Formatierung

Während Javascript ein Werkzeug zur Verarbeitung von Informationen ist, stellt HTML lediglich eine Möglichkeit zur Strukturierung von Informationen dar. So kann in HTML recht einfach festgelegt werden, ob ein Abschnitt hervorgehoben werden soll oder nicht. Dazu wird er einfach in einem <strong>-Tag eingeschlossen. Die Interpretierung, also das eigentliche Hervorheben des Abschnitts, findet durch ein spezielles Programm, einen Browser, statt - der Autor der HTML-Seite muss sich darum nicht kümmern.

Sie haben als Javascript-Entwickler ein viel mächtigeres Werkzeug zur Hand als mit HTML. Während HTML lediglich die Strukturierung von Informationen erlaubt, können Sie mit Javascript Informationen verarbeiten. Während die Strukturierung eine einmalige Sache und statisch ist, kann mit Javascript ein Vorgang zur Informationsverarbeitung entwickelt werden - also etwas dynamisches.

Die Informationsverarbeitung in Javascript findet hierbei hauptsächlich im Zusammenhang mit der Webseite statt, in der das Javascript-Programm eingebettet ist. Es geht nicht darum, irgendwelche Programme im Internet zur Verfügung zu stellen, die irgendwelche Informationen verarbeiten. Es geht darum, mit den Informationen zu arbeiten, die eine Webseite ausmachen. Das können Texte sein, aber auch Bilder, Formatierungen, Hyperlinks und so weiter. Die Informationen, die mit HTML statisch erstellt werden, sollen mit Hilfe von Javascript zum Leben erweckt werden und bearbeitet werden können.

Die Bearbeitung von Elementen auf Webseiten kann hierbei in die verschiedensten Bereiche gehen: Der eine Entwickler möchte Bilder über die Webseite fliegen lassen, der andere Entwickler bei bestimmten Eingaben durch den Anwender Texte ein- oder ausblenden, der dritte Entwickler wiederum Formulareingaben in Webseiten auf Gültigkeit überprüfen. Alle diese Tätigkeiten erfordern eine Verarbeitung von Informationen und stellen dynamische Vorgänge dar, die mit HTML nicht lösbar sind - aber mit Javascript.


1.3 Javascript in HTML einbinden

Einfügen oder Verlinken

Es gibt grundsätzlich zwei Möglichkeiten, Javascript in Webseiten einzubauen. Entweder fügen Sie den Quellcode in die gleiche Datei ein, die auch den HTML-Code enthält, oder aber Sie legen den Quellcode in eine eigene Datei und verweisen auf diese von der Webseite.

Javascript direkt in Webseiten eingebettet muss immer in einem <script>-Tag stehen.

<script type="text/javascript">

</script>

Wo dieser Tag mit dem dazwischenliegenden Javascript-Code in der Webseite liegt kann ab und zu entscheidend sein. Normalerweise wird Javascript jedoch in den Kopfbereich einer Webseite gestellt. Im Folgenden sehen Sie also eine Art Musterwebseite.

<html>
  <head>
    <title></title>
    <script type="text/javascript">

    </script>
  </head>
  <body>
  </body>
</html>

Wird Javascript-Code hingegen in eine eigene Datei gelegt, so muss die Webseite auf diese Datei verweisen. Javascript wird hierbei normalerweise in Dateien mit der Endung js gespeichert. Um auf eine Datei library.js zu verweisen, müssen Sie folgenden HTML-Code in den Kopfbereich der Webseite stellen.

<script type="text/javascript" src="library.js"></script>

Wie Sie sehen handelt es sich wiederum um den <script>-Tag. Diesmal wird er jedoch um ein Attribut src ergänzt, hinter dem in Anführungszeichen der Dateiname angegeben ist. Zusätzlich kann ein relativer oder absoluter Pfad in Anführungszeichen angegeben werden, falls die Javascript-Datei nicht im gleichen Verzeichnis wie die Webseite liegt. Es gelten also für das Attribut src im <script>-Tag die gleichen Regeln wie im <img>-Tag.

Wird über den <script>-Tag eine Javascript-Datei eingebunden, dürfen Sie keinen zusätzlichen Javascript-Code in diesem Tag in der Webseite angeben. Sie können jedoch einen zweiten <script>-Tag in die Webseite einbauen, in den Sie dann direkt Javascript einfügen können. Eine Beschränkung, wie viele <script>-Tags in eine Webseite eingebaut werden dürfen, gibt es nicht.


1.4 Mein erstes Javascript-Programm

Javascript in der Praxis

Geben Sie folgenden HTML-Code inklusive des eingebundenen Javascript-Codes in eine Datei ein. Speichern Sie die Datei mit der Endung htm oder html und laden Sie sie in einen Javascript-fähigen Browser wie zum Beispiel den Microsoft Internet Explorer oder Firefox.

<html>
  <head>
    <title>Webseiten erstellen mit Javascript</title>
    <script type="text/javascript">
      alert("Hallo, Welt!"); 
    </script>
  </head>
  <body>
  </body>
</html>

Beim Laden der Webseite erscheint ein kleines Fenster mit der Meldung Hallo, Welt!. Das Javascript-Programm besteht aus einer einzigen Funktion, nämlich aus alert(). alert() ist eine in Javascript eingebaute Funktion, die automatisch zur Verfügung steht. Sinn und Zweck dieser Funktion ist es, einfach nur ein Fenster zu öffnen, das einen bestimmten Text anzeigt. Welcher Text genau angezeigt werden soll, kann vom Entwickler zwischen den beiden runden Klammern von alert() in Anführungszeichen angegeben werden.

Im folgenden Beispiel wird von der HTML-Seite lediglich auf eine Javascript-Datei verwiesen. Geben Sie folgenden HTML-Code in eine Datei ein und speichern Sie diese wiederum mit der Endung htm oder html.

<html>
  <head>
    <title>Webseiten erstellen mit Javascript</title>
    <script type="text/javascript" src="library.js"></script>
  </head>
  <body>
  </body>
</html>

Geben Sie nun folgende Zeile in einen Editor ein und speichern Sie die Datei als library.js im gleichen Verzeichnis wie die eben erstellte HTML-Datei.

alert("Hallo, Welt!"); 

Wenn Sie die Webseite in den Browser laden, geschieht das gleiche wie im ersten Beispiel: Der Browser zeigt wiederum ein Fenster mit der Meldung Hallo, Welt! an. Anstatt den Javascript-Code nun aber direkt in der Webseite vorzufinden, wird auf ihn verwiesen - er liegt in einer eigenen Datei. Der Browser lädt nun diese Datei und führt den darin enthaltenen Javascript-Code aus. In der verwiesenen Datei darf daher auch nur ausschließlich Javascript-Code stehen, also keine zusätzlichen HTML-Tags.

Das Verweisen auf Javascript-Code in einer externen Datei macht Sinn: Zum einen können Sie ganz klar Ihren HTML-Code von Ihrem Javascript-Code trennen, indem Sie ihn einfach in zwei verschiedene Dateien legen und somit Ihr Projekt übersichtlich strukturieren. Zum anderen kann es notwendig sein, den gleichen Javascript-Code in mehreren Webseiten zu verwenden. Anstatt den Code jedesmal manuell in die Webseiten hineinzukopieren, legen Sie ihn stattdessen in eine externe Datei und verlinken dann von allen Webseiten auf diese. So haben Sie Ihren Code zentral abgelegt, so dass beispielsweise Änderungen oder Korrekturen im Javascript-Programm tatsächlich nur in einer Datei vorzunehmen sind.

Im nachfolgenden Beispiel wird ebenfalls die Meldung Hallo, Welt! ausgegeben - diesmal jedoch nicht in einem Fenster, sondern direkt in der Webseite, also den Browser selbst.

<html>
  <head>
    <title>Webseiten erstellen mit Javascript</title>
  </head>
  <body>
    Text vor der Meldung<br>
    <script type="text/javascript">
      document.write("Hallo, Welt!"); 
    </script>
    <br>Text nach der Meldung 
  </body>
</html>

Es gibt bereits mehrere Unterschiede zu den beiden vorherigen Beispielen. Zum einen steht der Javascript-Code nicht mehr im Kopfbereich der Webseite, sondern im <body>-Tag. Zum anderen wird nicht mehr die Funktion alert() aufgerufen, sondern die Funktion write() des Objekts document, das einer Objekthierarchie namens DOM 0 angehört.

Die Funktion write() schreibt hierbei den Text, der in Anführungszeichen zwischen runden Klammern übergeben wird, genau an die Stelle der Webseite, an der der Funktionsaufruf erfolgt. Es ist daher wichtig, die Funktion zwischen den beiden Texten Text vor der Meldung und Text nach der Meldung aufzurufen, um die Meldung Hallo, Welt tatsächlich zwischen diesen auszugeben. Würde der Funktionsaufruf im Kopfbereich der Webseite erfolgen, würde zuerst die Meldung Hallo, Welt! ausgegeben werden und danach die beiden Texte.


1.5 Sprach-Versionen und Browser-Versionen

Versions-Wirrwarr

Javascript wurde Mitte der 90er Jahre von der Firma Netscape erfunden. Netscape war zum damaligen Zeitpunkt die unbestrittene Nummer 1 im Browser-Markt. Netscape entwickelte für die Browser-Version Netscape Navigator 2.0 die Skriptsprache, um Autoren von Webseiten als neues Feature Dynamik zu ermöglichen - die Verarbeitung von Informationen in Webseiten. Der Sprachumfang, den der Netscape Navigator 2.0 verstand, wurde als Javascript 1.0 bezeichnet.

Javascript wurde ein riesiger Erfolg. Für die Nachfolgeversion des populären Browsers wurde die Sprache daher verbessert und erweitert, so dass Javascript im Netscape Navigator 3.0 in der Version 1.1 veröffentlicht wurde. Der Netscape Navigator 4.0 erhielt wiederum eine verbesserte Javascript-Version, nämlich 1.2.

Javascript war so erfolgreich, dass bald andere Browser-Hersteller begannen, diese Skriptsprache in ihre Produkte einzubauen und zu interpretieren. Nachdem Netscape jedoch Erfinder und Rechteinhaber von Javascript war, war es niemandem erlaubt, Javascript eigenständig weiterzuentwickeln. Nachdem Netscape verständlicherweise Entwickler konkurrierender Browser nicht informierte, welche Features eine weiterentwickelte Javascript-Version beinhalten würde, blieb diesen nichts anderes übrig als abzuwarten und dann jeweils für die kommende Browser-Generation die Features zu implementieren, die Netscape neu entwickelt hatte. Dies bedeutete: Der Netscape-Browser war in Bezug auf Javascript immer um eine Version voraus.

Als der Netscape Navigator 2.0 Javascript 1.0 verstand, war die Sprache so neu, dass sie von keinem anderen Browser-Hersteller unterstützt wurde. Als der Netscape Navigator 3.0 veröffentlicht wurde und Javascript 1.1 unterstützte, konnte der Microsoft Internet Explorer 3.0 lediglich Javascript 1.0 ausführen. Mit dem Netscape Navigator 4.0 wurde Javascript 1.2 eingeführt - der Microsoft Internet Explorer 4.0 unterstützte jedoch lediglich Javascript 1.1.

Aufgrund der wachsenden Bedeutung des Internets und der Neuausrichtung der Firma auf diesen Markt konnte Microsoft es nicht länger hinnehmen, ständig mit dem eigenen Browser hinter dem von Netscape in Bezug auf Javascript hinterherzuhecheln. Daher wurde mit Veröffentlichung des Microsoft Internet Explorers 4.0 die Skriptsprache JScript eingeführt. JScript heißt nicht nur sehr ähnlich, sondern funktioniert auch mehr oder weniger genauso wie Javascript. Mit diesem Trick gelang es Microsoft jedoch, nicht mehr auf Weiterentwicklungen von Netscape warten und dann "hinterherimplementieren" zu müssen, sondern die Sprache - eigentlich nur JScript - selber weiterentwickeln zu dürfen.

Die verschiedenen Versionen von Javascript und die Programmiersprachen Javascript und JScript unterscheiden sich nur marginal. Hin und wieder möchte man als Entwickler auf fortgeschrittenere Funktionen zugreifen, die im jeweils anderen Browser noch nicht zur Verfügung stehen - derartige Probleme gibt es aber in den wenigsten Fällen. Oft besteht die Möglichkeit, die Funktionalität mit Hilfe anderer Funktionen nachzuahmen, was zwar ärgerlicherweise zusätzlichen Programmieraufwand bedeutet, Entwicklungsvorhaben aber nicht unmöglich macht.

Letztendlich ist JScript das gleiche wie Javascript, wenn es auch mittlerweile einen größeren Funktionsumfang als Javascript besitzt. Microsoft hat JScript vor allem um Funktionen erweitert, um die Sprache auch ohne den Internet Explorer beim alltäglichen Arbeiten mit dem Windows-Betriebssystem einzusetzen und beispielsweise Aufgaben zu automatisieren.

Für den Entwickler von Webseiten ist jedoch interessant, dass es eine spezielle Möglichkeit gibt, JScript in Webseiten einzubinden, so dass der Code tatsächlich nur vom Internet Explorer ausgeführt wird und nicht vom Netscape Navigator oder anderen Browsern, die JScript nicht verstehen. Diese Art der Einbindung ist umso interessanter, dass wenn Sie wissen, dass Sie speziell auf Sprachelemente von JScript zurückgreifen müssen, die es in Javascript nicht gibt, Sie Ihren Quellcode so in die Webseite einbinden können, dass er von anderen Browsern nicht ausgeführt wird und dort auch nicht zu Fehlern führt.

<html>
  <head>
    <title>Webseiten erstellen mit Javascript</title>
    <script language="jscript">
      alert("Hallo, Welt!"); 
    </script>
  </head>
  <body>
  </body>
</html>

Anstatt den MIME-Typ text/javascript über das Attribut type anzugeben wird im <script>-Tag das language-Attribut verwendet und auf den Wert jscript gesetzt. Der Code wird damit als JScript-Code gekennzeichnet. Nachdem alle Internet Explorer ab Version 4 JScript verstehen, führen sie den Code aus. Weil andere Browser wie der Netscape Navigator oder auch Mozilla kein JScript verstehen, wird in diesen Browsern auch keine Meldung Hallo, Welt! ausgegeben.

Übrigens: Wenn Sie das language-Attribut auf den Wert javascript setzen, funktioniert der Code wieder in allen Javascript-fähigen Browsern. Der offizielle Weg zum Einbinden von Javascript läuft jedoch nicht über das Attribut language, sondern wie bereits gesehen über type.


1.6 Objekthierarchien

DOM 0, DOM 1, DOM 2, DHTML ...

Wie Sie bereits wissen werden Javascript-Programme nicht erstellt, um irgendwelche Informationen zu verarbeiten, sondern Informationen in Bezug auf Webseiten: Bilder sollen verschoben, ein- oder ausgeblendet werden, Formulareingaben sollen überprüft werden, auf Benutzereingaben soll reagiert werden und so weiter.

Der Zugriff auf Elemente in Webseiten erfolgt über Objekthierarchien. Eine Objekthierarchie ist eine Auflistung verschiedener Elemente, die teilweise anderen Elementen untergeordnet sind und daher eine Art Verästelung darstellen.

Mit der Einführung von Javascript im Netscape Navigator 2.0 führte Netscape eine recht kleine Objekthierarchie ein, die fester Bestandteil von Javascript war und ist und über die man auf ein paar wenige Elemente einer Webseite zugreifen konnte. Durch die nun doch schon einige Jahre zurückliegende Einführung dieser Objekthierarchie und vor allem durch die feste Integration in die Programmiersprache Javascript unterstützen alle Javascript-fähigen Browser diese Objekthierarchie heute auch. Diese Objekthierarchie war lange Zeit namenlos, nachdem es die einzige Hierarchie war, um auf Elemente in Webseiten zugreifen zu können. Sie trägt heute den Namen DOM 0.

Durch die wachsende Bedeutung von Javascript und die Möglichkeit, Elemente innerhalb von Webseiten dynamisch verändern zu können, geriet Javascript zwischen die Fronten und wurde eines der am härtesten umkämpften Features im Versuch, die Marktführerschaft im Browser-Markt zu sichern bzw. zu erlangen. Mit der vierten Version ihrer Browser führten Netscape und Microsoft daher neue Möglichkeiten ein, per Javascript auf Elemente einer Webseite zugreifen und diese verändern zu können. Während Microsoft jedoch eine völlig neue und umfassende Objekthierarchie namens DHTML einführte, die weit über die Möglichkeiten von DOM 0 hinausging, führte Netscape eher eine andere Art des Zugriffs auf Elemente ein - nicht direkt ein Konkurrenzmodell zu DOM 0, sondern eher eine Ergänzung.

Das WWW-Konsortium, kurz W3C, das das Kontrollgremium im Internet in Bezug auf HTML und andere Markup-Sprachen im World Wide Web darstellt, erkannte frühzeitig, dass die getrennte Weiterentwicklung von Objekthierarchien durch verschiedene Hersteller zu Inkompatibilitäten führen würde, was die Entwicklung dynamischer Webseiten enorm erschweren würde. Jede Webseite müsste für unterschiedliche Browser unterschiedlichen Code enthalten, nachdem der Zugriff auf Elemente in Webseiten jeweils unterschiedlich erfolgen müsste.

Das W3C begann daher mit einem Standardisierungsprozess, um ähnlich wie die Sprache HTML auch die Zugriffsmöglichkeiten auf Elemente in HTML über Skriptsprachen zu vereinheitlichen. Die erste Version dieses Standards war DOM 1. DOM steht für Document Object Model und beschreibt, wie von einer Skriptsprache auf jedes Element einer Webseite zugegriffen werden kann und die Eigenschaften jedes Elements geändert werden können. Der Zugriff auf Elemente ist hierbei genial einfach gelöst und erfordert nicht das Auswendiglernen irgendwelcher riesiger Objekthierarchien, sondern erfolgt mit Hilfe sehr weniger und sehr flexibler Befehle.

Als die vierte Generation der Internet-Browser veröffentlicht wurde, war der Standardisierungsprozess zu DOM 1 noch nicht abgeschlossen. Als der Internet Explorer 4 veröffentlicht wurde und die Möglichkeiten des Zugriffs auf fast jedes beliebige Element einer Webseite über DHTML von Web-Autoren begeistert angenommen wurden, versuchte Netscape kurz vor Veröffentlichung des Netscape Navigator 4, ähnlich komfortable Schnittstellen wie der Internet Explorer 4 zu bieten. Aufgrund der bereits sehr weit fortgeschrittenen Programmierung der neuen Browser-Version und der kurz bevorstehenden Veröffentlichung konnten nur mehr sehr wenige Änderungen vorgenommen werden. Mit dem Netscape Navigator 4 wurde ein Browser veröffentlicht, der sich nicht nur in keinster Weise an DOM 1 orientiert, sondern im Gegensatz zum Microsoft Internet Explorer 4 auch keinen beliebigen Zugriff auf Elemente in Webseiten bietet, sondern lediglich DOM 0 erweitert.

Das im Netscape Navigator 4 eingeführte Zugriffsmodell ist heute tot und wird nicht mehr eingesetzt. Trotz einem Standard wie DOM 1 für den Zugriff auf Elemente in Webseiten existiert die Objekthierarchie DHTML von Microsoft heute noch. Die starke Verbreitung des Internet Explorers hat dazu geführt, dass DHTML immer mehr Verwendung fand. Auch weil DHTML im Internet Explorer 4 früher veröffentlicht war als DOM 1, haben wahrscheinlich sehr viele Autoren DHTML erlernt und nicht mehr die Notwendigkeit gesehen, zusätzlich DOM 1 zu erlernen.

Inzwischen liegt eine neue Version der standardisierten Objekthierarchie, nämlich DOM 2, vor. Während in die Browser Netscape 6 und Netscape 7 DOM 1 und teilweise DOM 2 bereits implementiert ist, bieten die aktuellen Versionen des Internet Explorers bei weitem nicht DOM 1 geschweige denn DOM 2 vollständig an. Dank DHTML steht im Internet Explorer eine andere Objekthierarchie zur Verfügung, die jedoch inkompatibel zu DOM 1 und DOM 2 ist.

Wer dynamische Webseiten entwickelt, muss aufpassen, jeweils die richtigen Objekthierarchien zu verwenden. Alle Javascript-fähigen Browser verstehen DOM 0. Alle Internet Explorer-Versionen ab 4 verstehen DHTML und ab Version 5 teilweise DOM 1. Netscape Navigator 4 versteht ein spezielles Zugriffsmodell als Erweiterung zu DOM 0. Netscape 6 und Netscape 7 verstehen DOM 1 und teilweise DOM 2. In diesem Dschungel ist es leider notwendig, sich in mehreren Objekthierarchien auszukennen, um auch in jedem Browser die gleichen Ergebnisse zu erzielen. Lediglich das Zugriffsmodell aus dem Netscape Navigator 4 kann heute getrost vergessen werden, nachdem nicht mal mehr die Nachfolgeversion Netscape 6 dieses Modell unterstützt.

Die Zukunft gehört DOM 2 und DHTML. Auf lange Sicht hin werden alle Browser DOM 2 implementieren - ob auch der Microsoft Internet Explorer bleibt abzuwarten. Der Marktanteil des Internet Explorers ist so groß, dass für Microsoft derzeit nicht die Notwendigkeit besteht, auf eine Objekthierarchie umzuschwenken, die auch von Konkurrenzbrowsern unterstützt wird. Eine einheitliche Schnittstelle in allen Browsern wäre zwar wünschenswert, nur sind heute Kenntnisse zur Programmierung von DHTML normalerweise weiter verbreitet als zu DOM. Als Entwickler von DHTML bietet Microsoft außerdem online riesige Informationsquellen zu dieser Objekthierarchie an, weil Microsoft natürlich daran interessiert ist, dass Entwickler DHTML einsetzen. Demgegenüber stehen nur hochgradig technische Beschreibungen zu DOM 1 und DOM 2 auf der offiziellen Website des W3C, die in der Praxis wenig hilfreich sind.