SyntaxError: nicht abgeschlossener String-Literal-Fehler [duplizieren]
Diese Frage hat hier bereits eine Antwort:
Wie kann ich in JavaScript eine Zeichenfolge über mehrere Codezeilen aufteilen? 8 AntwortenIch habe diesen seltsamen nicht abgeschlossenen String-Literal-Fehler in JavaScript. Wenn ich nur ein einziges Wort wie "php" ausgebe (in der Variable cache_open.handler). Es liegt kein Fehler vor. Dies ist das Skript und unten funktioniert gut:
<script>
var cache_open = {};
var cache_name_open={};
var handler='open';
cache_open.handler='<pre class="brush: html;">php</pre>';
cache_name_open.handler='PHP prepared statement';
</script>
Wenn ich jedoch einen Code (von einer HTML-Entität ausgegebenen Quellcode) an die Tätervariable cache_open.handler ausgebe, wird ein nicht abgeschlossener Zeichenfolgenliteralfehler in der Konsole zurückgegeben.
Dies ist die Beispielausgabe, in der ein Fehler zurückgegeben wird:
<script>
var cache_open = {};
var cache_name_open={};
var handler='open';
cacheObj_open.handler='<pre class="brush: html;">
<?php
$stmt = $dbh->prepare("SELECT * FROM REGISTRY where name = ?");
if ($stmt->execute(array($_GET['name']))) {
while ($row = $stmt->fetch()) {
print_r($row);
}
}
?></pre>';
cache_name_open.handler='PHP prepared statement';
</script>
Zuerst dachte ich, es sei nur die Komplexität des zurückgegebenen Codes (zum Beispiel mit Anführungszeichen usw.). Aber auch ein einfacher HTML-Code gibt einen Fehler zurück:
<script>
var cache_open = {};
var cache_name_open={};
var handler='open';
cacheObj_open.handler='<pre class="brush: html;"><html>
<body>
<p>Hello world.</p>
</body>
</html></pre>';
cache_name_open.handler='PHP prepared statement';
</script>
Irgendwelche Ideen, was den Fehler verursacht? Änderungsvorschläge sind dankbar!