nullplan: Auskommentieren in <script>

Also, (ich bin in dem Gebiet noch ausreichend unwissend, um die Profitricks nicht zu kennen) ich habe heute euer Kapitel über Javascript angefangen. Da stand da, dass alte Browser den Script-Tag nicht unterstützen. Kein Beinbruch, Software muss sich ja entwickeln. Um eine Kompatibilität zu diesen Browsern herzustellen, sollte man den Text innerhalb des Script-Tags in HTML-Kommentarzeichen setzen und das Endzeichen des Kommentars mit einem Java-Kommentar versehen. Ich verstehe, wie es gedacht ist, nämlich so:
Der alte Browser sieht den Script-Tag, denkt sich "Was soll ich denn jetzt nur tun?" Die Entscheidung wird ihm abgenommen, da sich der Tag bis auf einen Kommentar als inhaltsleer herausstellt.
Der neue Browser sieht den Tag, setzt aufgrund des Typs (text/javascript) den HTML-Standard für die Länge des Tags außer Kraft, ignoriert demzufolge das Kommentareingangszeichen und führt das Script ordnungsgemäß aus.
Das ist ja alles schön und gut, aber leider nicht perfekt. Der entscheidende Schritt des Browsers (HTML-Standard außer Kraft setzen) findet nicht statt, und so ignoriert der neue Browser genau wie der alte das Script und wundert sich dann, was weiter unten für Elemente auftauchen.
Da ich nicht ganz unfair sein will: Ich habe schon die Lösung des Problems parat: Ich weiß nicht, ob der Inhalt zweier Slashs den alten Browser aus den Schuhen haut, der neue jedoch wird durch Java-Auskommentieren beider HTML-Kommentarzeichen diese ignorieren und das Script ausführen.
Am Ende steht dann da:
<script type="text/javascript">
//<!--
/*Hier kommt euer Script rein */
//-->
</script>

  1. Hi,

    ich habe heute euer Kapitel über Javascript angefangen. Da stand da, dass alte Browser den Script-Tag nicht unterstützen. Kein Beinbruch, Software muss sich ja entwickeln. Um eine Kompatibilität zu diesen Browsern herzustellen, sollte man den Text innerhalb des Script-Tags in HTML-Kommentarzeichen setzen und das Endzeichen des Kommentars mit einem Java-Kommentar versehen.

    Nein. Unter http://de.selfhtml.org/javascript/intro.htm#javascriptbereiche steht nur:
    "Gewisse besonders alte Browser, zum Beispiel Netscape 1 und Internet Explorer 2, wissen nichts von JavaScript und kennen daher das script-Element nicht."
    Wenn Du nicht ganz zufällig jemanden kennst, der diese Browser noch verwendet, dann mache Dir bitte keine Gedanken darüber.

    Der entscheidende Schritt des Browsers (HTML-Standard außer Kraft setzen) findet nicht statt, und so ignoriert der neue Browser genau wie der alte das Script

    Nein. Es wurde früher (als besagte Browser noch genutzt wurden) festgelegt, daß ein direkt auf <script> folgender HTML-Kommentar ignoriert werden soll. Deshalb ist

    //<!--

    Murks, denn das würde diese Regel außer Kraft setzen und besagte alte Browser könnten evtl. die // im Dokument anzeigen.

    freundliche Grüße
    Ingo

  2. Hi,

    Um eine Kompatibilität zu diesen Browsern herzustellen, sollte man den Text innerhalb des Script-Tags in HTML-Kommentarzeichen setzen und das Endzeichen des Kommentars mit einem Java-Kommentar versehen.

    Ja, so wenig kann Rücksichtnahme kosten - schließlich weiß man ja nie, welchen Browser es von irgendwem auf die Website verschlägt. ;->

    Zur Wissenserweiterung: *Ganz, ganz* alte Browser scheitern übrigens auch dann: Anfangs waren HTML-Kommentare nur einzeilig - Scripts sind aber i.d.R. mehrzeilig (die Auskommentierung setzt dies sogar voraus).

    Auch ein Dekrement (i--) beendet den Kommentar und alte Browser stellen den Rest dar.

    In XML müssen zudem die Scripts als CDATA gekennzeichnet werden. Statt des Kommentartags wird das Script mit
    //<![CDATA[

    //]]>
    umschlossen - also *mit* den // am Anfang.

    Sicher ist in allen Fällen nur, das Script in eine Datei auszulagern.

    Gruß, Cybaer

    --
    Hinweis an Fragesteller: Fremde haben ihre Freizeit geopfert, um Dir zu helfen. Helfe Du auch im Archiv Suchenden: Beende deinen Thread mit einem "Hat geholfen" oder "Hat nicht geholfen"!