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?