Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/391.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 好的JSON,但浏览器抛出错误_Php_Javascript_Json - Fatal编程技术网

Php 好的JSON,但浏览器抛出错误

Php 好的JSON,但浏览器抛出错误,php,javascript,json,Php,Javascript,Json,我有一个PHP脚本,用于构建HTML5文档的标题部分。发射的部分物质是这样的 $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; 出于某种原因,浏

我有一个PHP脚本,用于构建HTML5文档的标题部分。发射的部分物质是这样的

$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;
出于某种原因,浏览器对属性值中的空格表示异常。如果我折叠那个字符串,让它读

"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)"}};

如果删除第一个和最后一个',则不会引发错误,如下所示:

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)"}};

JavaScript字符串文字中不能有文字换行符


移除或逃离它们。更好的方法是:不要使用JSON,只需要一个JavaScript对象文本,这样就不必进行单独的分析步骤。

JavaScript字符串文本中不能有文本换行符

移除或逃离它们。更好的方法是:不要使用JSON,只需要一个JavaScript对象文本,这样就不必进行单独的解析步骤。

正如Jonas所说,从字符串的开头和结尾删除'

这样,变量将成为一个有效的Javascript对象,而不仅仅是一个包含JSON的长字符串。

正如Jonas所说,从字符串的开头和结尾删除'



这样,变量将成为一个有效的Javascript对象,而不仅仅是一个包含JSON的长字符串。

Wild guess:缩小字符串时是否将其缩小为一行?字符串中有换行符,这在JavaScript中是不允许的-您会注意到,没有换行符的版本不会抛出错误。此外,我不确定您为什么要将JSON传递给变量而不是实际对象。在对象定义中,换行符是可以的。您正在向我们展示生成HTML的代码-向我们展示实际的HTML-有可能您对输出做出了无效的假设。您没有将var保存为json对象,而是将其保存为字符串,因为第一个和最后一个quote@aversag很抱歉但是没有JSON对象这样的东西。JSON始终是文本字符串。如果删除引号,它将成为一个JavaScript对象。胡乱猜测:在缩小字符串的范围时,是否将其缩减为一行?字符串中有换行符,这在JavaScript中是不允许的-您会注意到,没有换行符的版本不会抛出错误。此外,我不确定您为什么要将JSON传递给变量而不是实际对象。在对象定义中,换行符是可以的。您正在向我们展示生成HTML的代码-向我们展示实际的HTML-有可能您对输出做出了无效的假设。您没有将var保存为json对象,而是将其保存为字符串,因为第一个和最后一个quote@aversag很抱歉但是没有JSON对象这样的东西。JSON始终是文本字符串。如果删除引号,它将成为JavaScript对象。是的,可以。您只需要在换行之前用\对它们进行转义。@pozs-如果转义它们,它们就不是文字。否。文字可以包含转义序列@pozs-它将是一个字符串文本。这不会是一个字面上的新行。这将是一条新的线路。是的,你可以。您只需要在换行之前用\对它们进行转义。@pozs-如果转义它们,它们就不是文字。否。文字可以包含转义序列@pozs-它将是一个字符串文本。这不会是一个字面上的新行。这将是一条新的线路。谢谢你的各种评论。“开始和结束的引号”源自我发布此问题时的复制/粘贴。我输入的换行符是为了让代码可读——事后看来,这是一个错误,因为这让每个人都走错了方向。我已经编辑了问题中的代码示例。代码现在是复制我发现的场景的最小值。我有JSON,而不是Javascript文本,而且它也没有换行符,这对JSON来说并不重要。但是错误依然存在——如果我去掉空格,它就会消失。谢谢你的各种评论。“开始和结束的引号”源自我发布此问题时的复制/粘贴。我输入的换行符是为了让代码可读——事后看来,这是一个错误,因为这让每个人都走错了方向。我已经编辑了问题中的代码示例。代码现在是复制我发现的场景的最小值。我有JSON,而不是Javascript文本,而且它也没有换行符,这对JSON来说并不重要。然而错误依然存在——如果我去掉空格,它就会消失。