php - 良好的 JSON 但浏览器抛出错误

标签 php javascript json

我有一个 PHP 脚本,用于构建 HTML(5) 文档的 header 部分。正在发出的部分内容是这样的

$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)中,这会引发错误 Uncaught Syntax Error: Unexpected token illegal。

通过一些实验,我已经将问题缩小到最后一个属性

"cursorborder":"1px dashed rgba(200,13,57,1)"

出于某种原因,浏览器对属性值中的空格不予考虑。如果我折叠该字符串,使其显示为

"cursorborder":"1pxdashedrgba(200,13,57,1)"

语法错误信息消失。我想不出任何合理的解释。为了完整起见,我想我应该提到 JSON 是由 json_encode 在服务器端生成的。

也许有人可以告诉我哪里出错了?

最佳答案

如果我删除第一个和最后一个 ' ,它不会抛出错误,如下所示:

var _scrolls = {"alpha": {"bouncescroll":true,"boxzoom":false,"enabletranslate3d":true,"dblclickzoom":true,"gesturezoom":true,"hwacceleration":true,"horizrailenabled":true,"enablekeyboard":true,"railalign":"right","enablemousewheel":true,"nativeparentscrolling":true,"enablescrollonselection":true,"sensitiverail":true,"smoothscroll":true,"spacebarenabled":true,"railvalign":"bottom","touchbehavior":false,"autohidemode":false,"cursorcolor":"rgba(245,146,30,1)","background":"rgba(127,255,142,1)","cursorborder":"1px dashed rgba(200,13,57,1)"}};

关于php - 良好的 JSON 但浏览器抛出错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17040211/

相关文章:

php - 通过 CSS 从 PHP 变量中的值设置元素的背景图像

c# - 使用类型提供程序和 JSON API

php - Android 将 JSON 发布到 Web 服务 php 并从服务接收 JSON

php - 如何在数据库中解析和插入数据

php - 如何异步运行 PHP 脚本?

javascript - 如何让我的导航栏在滚动经过 anchor 时更改 CSS 类?

javascript - 如何插入此输入“搜索内部选项”?

javascript - 将复选框标签设置为右侧或固定位置

java - JSON 字符串验证 [Spring Boot] - 约束零值

ios - 使用 post 快速 JSON 登录 REST 并获取响应示例