以前,我在JS中遇到“未终止的字符串文字奇怪错误”:SyntaxError:未终止的字符串文字奇怪错误
我有点用 json_encode 修复它,因为换行符被转义了。
现在我得到了这些奇怪的结果,例如这个 JS 变量(用 json_encode 处理):
cacheObj_open.handler='<pre class="brush: html;">"<html>\r\n<body>\r\n<p>Hello world.<\/p>\r\n<\/body>\r\n<\/html>"</pre>';
将输出带有双引号的代码:
"<html>
<body>
<p>Hello world.</p>
</body>
</html>"
上面的代码运行没有控制台错误。但是下面的(也用 json_encode 处理)抛出SyntaxError: missing ; 之前的语句错误:
cacheObj_open.handler='<pre class="brush: html;">"\r\n<?php\r\n$stmt = $dbh->prepare("SELECT * FROM REGISTRY where name = ?");\r\nif ($stmt->execute(array($_GET['name']))) {\r\n while ($row = $stmt->fetch()) {\r\n print_r($row);\r\n }\r\n}\r\n?>"</pre>';
将 HTML 实体源代码输出到 JS 变量时,避免任何错误的最佳方法是什么?我知道 json_encode 会转义一些新行(这是一个好主意),但是基于上面的示例,它仍然会为某些代码引发错误。我感谢任何意见和建议。
我曾尝试在 PHP 端添加 addlashes,但它仍然会引发错误。