Hallo,
Immerhin wird, Standard hin oder her, von den Browsern alles geschluckt. Z.B. Dekrementierung (i--) auch wenn das Javascript in einem Kommentar steht; aber vor allem das '<', das escaped werden müßte, aber in Javascript nur extrem selten wird
Hm? »<« muss nicht maskiert werden. Lediglich »</« sollte nicht zwischen den script-Tags auftauchen, weil es zur Erkennung des End-Tags reserviert ist. Wenn ein »</« kommt, muss es Teil von »</script>« sein und das script-Element schließen. Andernfalls muss man »</« notieren, also z.B. document.write("<p>Hallo Welt</p>");.
Gilt "alles zwischen '<script' und '</script' ist Javascript" immer, auch wenn unkorrekterweise das '<' z.B. in
alert("hallo </script>");
nicht ordnungsgemäß escaped wurde?
Ja, andernfalls könnte man keinen sinnvollen Parser schreiben. Bei diesem End-Tag ist das script-Element definitiv zuende, das sollte jeder Browser so sehen, das ist auch so vorgeschrieben.
Die mir hier zur Verfügung stehenden Browser machen es so halbwegs richtig (Zeigen die drei Zeichen '");' an, was an der Stelle eigentlich nicht zulässig ist.
Oder ist ein Textknoten zwischen </script> und </head> etwa erlaubt?)
Das ist zwar nicht erlaubt, aber trotzdem zeigen die meisten Browser normale Zeichendaten direkt innerhalb von head an.
Mathias