eisbaer04: innerHTML mit </script> Problem

Beitrag lesen

Hi,

Funktioniert nicht:

<html>
<div id="content">asdf</div>
<script language="javascript">
document.getElementById('content').innerHTML='<script language="javascript">alert("hallo");</script>';
</script>
</html>

--> Error: unterminated string literal

Das Problem ist, dass dein Scriptbereich nur bis zum ersten </script> geht, was der Parser findet! Das dieses nun aber in einem String steht, bemerkt er nicht. Für den Parser ist das Javascript nach ("hallo"); abgeschlossen. Somit fehlt ihm ein Stringabschluss ';

Lösung:
Du must das </script> aufteilen:

<html>
<div id="content">asdf</div>
<script language="javascript">
document.getElementById('content').innerHTML='<script language="javascript">alert("hallo");</scr'+'ipt>';
</script>
</html>

eb4