我有一个 PHP 脚本正在构建 HTML(5) 文档的标题部分。发出的部分内容是这样的
$rtn = <<<RTN
<script type='text/javascript'>
var _scrolls = {"alpha":{"cursorborder":"1px dashed rgba(200,13,57,1)"}};
var _floors = new Array(10000,{$mqt},{$mqf});
</script>
RTN;
JSON 是有效的——至少 JSONlint.com 似乎是这样认为的。但是,在我的浏览器(Windows 上的 Chrome)中,这会引发错误未捕获的语法错误:意外的令牌非法。
通过一些实验,我将问题缩小到最后一个属性
"cursorborder":"1px dashed rgba(200,13,57,1)"
由于某种原因,浏览器对属性值中的空格表示例外。如果我折叠该字符串以使其显示为
"cursorborder":"1pxdashedrgba(200,13,57,1)"
语法错误消息消失。我想不出任何合理的解释。为了完整起见,我想我应该提到 JSON 是由 json_encode 在服务器端生成的。
也许有人在这里可以告诉我哪里出错了?