-1

以前,我在JS中遇到“未终止的字符串文字奇怪错误”:SyntaxError:未终止的字符串文字奇怪错误

我有点用 json_encode 修复它,因为换行符被转义了。

现在我得到了这些奇怪的结果,例如这个 JS 变量(用 json_encode 处理):

        cacheObj_open.handler='<pre class="brush: html;">"&lt;html&gt;\r\n&lt;body&gt;\r\n&lt;p&gt;Hello world.&lt;\/p&gt;\r\n&lt;\/body&gt;\r\n&lt;\/html&gt;"</pre>';         

将输出带有双引号的代码:

"<html>
<body>
<p>Hello world.</p>
</body>
</html>"

上面的代码运行没有控制台错误。但是下面的(也用 json_encode 处理)抛出SyntaxError: missing ; 之前的语句错误:

cacheObj_open.handler='<pre class="brush: html;">"\r\n&lt;?php\r\n$stmt = $dbh-&gt;prepare(&quot;SELECT * FROM REGISTRY where name = ?&quot;);\r\nif ($stmt-&gt;execute(array($_GET['name']))) {\r\n  while ($row = $stmt-&gt;fetch()) {\r\n    print_r($row);\r\n  }\r\n}\r\n?&gt;"</pre>';            

将 HTML 实体源代码输出到 JS 变量时,避免任何错误的最佳方法是什么?我知道 json_encode 会转义一些新行(这是一个好主意),但是基于上面的示例,它仍然会为某些代码引发错误。我感谢任何意见和建议。

我曾尝试在 PHP 端添加 addlashes,但它仍然会引发错误。

4

1 回答 1

0

这种情况下的错误是 at execute(array($_GET['name'],这里的单引号关闭了整个字符串周围的引号。他们应该用反斜杠转义。

于 2013-01-05T09:25:44.650 回答