9
我在JavaScript中有这个奇怪的未终止的字符串文字错误。当我只输出一个单词像“php”(在cache_open.handler变量中)。没有错误。这是脚本及以下正常工作:SyntaxError:未终止的字符串文字奇怪的错误
<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>
但是当我输出的代码(HTML实体输出的源代码)的罪魁祸首变量cache_open.handler,它在控制台返回未结束的字符串错误。
这是样本输出,其中它将返回一个错误:
<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>
起初我认为这是代码的仅仅是复杂返回(对于含有引号例如,等)。但即使是一个简单的HTML代码也将返回一个错误:
<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>
任何想法是什么原因造成的错误?任何修改建议非常感谢!没有逃逸(\
)