JavaScript XHTML Beispiel: Script Code in XHTML einbinden (inline)

Anders als bei normalem HTML-Code kann JavaScript in XHTML nicht einfach per in einem Script-Tag abgelegtem JavaScript-Code nortiert werden. Dies liegt daran, dass die in einem Script-Code enthaltenen JavaScript-Anweisungen Zeichen enthalten können, die vom XML-Parser als falsch formulierter XHTML-Code erkannt werden. Problematisch sind hier insbesondere die in JavaScript-Code genutzten Zeichen <, >, & sowie ". Diese Zeichen haben auch für den XHTML-Parser eine besondere Bedeutung. Elemente und Struktur von Dokumenten, welche in der Markup-Sprache XHTML verfasst sind, werden mit diesen Zeichen definiert (bzw. durch die Inhalte innerhalb dieser Markup-Zeichen). Tauchen derartige Zeichen in einem JavaScript-Block auf, so wird der Parser aus dem Tritt gebracht, was zu Fehlern – und letztlich auch zu Darstellungsproblemen – führen kann.

Um derartigen Problemen aus dem Wege zu gehen, sollte JavaScript nach Möglichkeit aus XHTML-Dateien herausgehalten werden. Dies gelingt – genau, wie bei der Integration von JavaScript in HTML-Code – durch das Einbinden externer JS-Dateien, wie es im zweiten Beispiel unter JavaScript-Code in HTML integrieren beschrieben steht. Ist eine solche Vorgehensweise nicht möglich, so sollte die Kombination von XHTML & JavaScript auf eine Weise formuliert werden, dass der Parser bei seiner Arbeit nicht gestört wird.

Zu diesem Zweck können Script- wie auch Style-Bereiche im XHTML-Code in einen Bereich verbannt werden, der vom XML-Parser als einzelner Knoten erkannt und nicht weiter aufgeschlüsselt wird. Erreicht wird dies, indem der Inhalt eines Script-Tags (also der JavaScript-Code) mit CDATA umschlossen wird – gleiches gilt übrigens auch für Inline formulierte CSS-Angaben unter XHTML. Die Kombination mit XHTML JavaScript CDATA Bereichen stabliert den Quelltext und stellt damit für den Parser einen verträglicheren XHTML-Code dar.

Durch das Auskommentieren der Zeilen, in denen der CDATA-Bereich definiert wird, können Probleme mit älteren Browsern vermieden werden. Auch wenn Sie JavaScript in XHTML einbinden möchten, können Sie Script-Code an beliebiger Stelle im HEAD- oder im BODY-Bereich des XHTML-Dokuments notieren.

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" 
  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
  <head>
    <title>Seitentitel</title>
    <script type="text/javascript">
    // <![CDATA[
    function meldung_ausgeben (meldung) {
      if (meldung.length > 0)
        alert ("Sie sollten auch eine Meldung angeben!");
    }
    // ]]>
    </script>
  </head>
  <body>
    <script type="text/javascript">
    // <![CDATA[
    meldung_ausgeben ("Mal sehen, was dabei rauskommt!");
    // ]]>
    </script>
  </body>
</html>


¬ Insolvenzrecht