Raik: Maskierung von Sonderzeichen

Beitrag lesen

Hallo Jeena,

Darf ich denn innerhalb dieses JavaScripts immer " verwenden? Wird es dann nicht das gleiche also dass es wieder nur bis [..]ElementByID( geht und dann da ein JS Fehler verursacht wird? (Von JavaScript habe ich noch weniger Ahnung als von PHP)

zuerst einmal hast du serverseitig ein php-script, das einen string ausgeben soll:
<?php if($begrusung == 'aus') echo 'onLoad="document.getElementById('gruss').style.display='none'"'; ?>
da in diesem string keine php-variablen vorkommen, setzt du ihn sinnvoller weise in singlequotes (so wie du das gemacht hast)
'onLoad="document.getElementById('gruss').style.display='none'"'
damit das als *ein* string erkannt wird, musst du die im string enthaltenen singlequotes maskieren:
'onLoad="document.getElementById('gruss').style.display='none'"'
so das sie nicht mehr als string-delimiters (string-begrenzer) sondern als normale zeichen behandelt werden.

die ausgabe dieses strings im clientseitigen html-dokument ist dann:
onLoad="document.getElementById('gruss').style.display='none'"
wobei wieder das ganze javascript, das *onLoad* ausgeführt werden soll,
in string-delimiter des gleichen typs " eingeschlossen wird:
document.getElementById('gruss').style.display='none'

du musst also auch hier darauf achten, einen string mit dem gleichen begrenzer zu beginnen, mit dem du ihn beendest.
sollen gleiche zeichen auch innerhalb des strings verwendet werden, müssen sie maskiert werden " oder '

wenn du mal in die situation kommst, das php einen string ausgeben soll, in dem bestimmte zeichen noch maskiert sind:
clientseitige ausgabe: alert('Diese Meldung\nhat zwei\nZeilenumbrüche.');
dann musst du den backslash des sonderzeichens in javascript für einen zeilenumbruch \n
in deinem php-script mit einem weiteren backslash \n .

ich hoffe, das hilft etwas.

freundl. grüsse aus berlin, Raik