Carsten: --» in zeichenkette

Beitrag lesen

Hi iso,

[...] wenn man ein script wie dieses in einer html datei hat:

<script language="JavaScript"><!--
var test = "-->";
alert(test);
//--></script>
und der browser kann kein javascript oder es is abgestellt,

Da gibt es wohl einen Unterschied:

o Der Browser kann Javascript aber es ist ausgeschaltet:
  Alles zwischen <script> und </script> wird ignoriert (weder  
  ausgeführt noch angezeigt).

o Der Browser kann kein Javascript:
  Dann wird alles innerhalb von <script> und </script> angezeigt, weil
  der Browser das ihm unbekannte <tag> ignoriert. Schreib probehalber
  mal eine HTML-Datei ein der du ein Stück Text <kiwi> in ein
  'selbsterfundenes' </kiwi> Tag einsetzt. Der Text wird trotzdem
  angezeigt. Das ist oft sinnvoll, aber bestimmt nicht bei
  JavaScript-Bereichen. Deshalb setzt man das Script (oder die
  Styles) in Kommentare, damit das nicht passiert.

»»  dann steht doch nacher an der stelle folgendes:

";
alert(test);
//-->
oder?

Bei einem Browser der das <script> Tag nicht kennt: Ja.
Bei einem Browser der Javascript abgeschaltet hat: Nein

gibts eine andere möglichkeit das zu maskieren ausser die entsprechende
zeichenfolge an der stelle zu unterbrechen und zu addieren - also nicht so:
var test = "--" + ">";
gibts ne möglichkeit?

Ja:
   var test = "-->";

Der bekannte )* Fall diese Phänomens ist übrigens:
   document.write("</script>");
Da erkennt der Browser ohne das \ ein Script-Ende. Böse Falle...
(Für 'sauberen' Code müssen alle </ im Script-Bereich als </ geschrieben
werden, ausser das echte </script> )

cu
Carsten

)* heisst: den mit dem "-->" kannte ich noch nicht :-)

P.S. Aussagen zum "dem Browser der kein <script> Tag" sind ist ungetestet,
woher sollte ich den nehmen?