php - 为什么这个 JSON.parse 代码不起作用?

标签 php javascript json parsing encode

我试图将 json 编码值从 php 脚本传递到 GnuBookTest.js、javascript 文件,该文件启动 Bookreader 对象并使用我通过名为“result”的变量传入的值。

php 脚本发送的值如下:

<div id="bookreader">
 <div id="BookReader" style="left:10px; right:10px; top:30px; bottom:30px;">x</div>
 <script type="text/javascript">var result = {"istack":"zi94sm65\/BUCY\/BUCY200707170530PM","leafCount":"14","wArr":"[893,893,893,893,893,893,893,893,893,893,893,893,893,893]","hArr":"[1155,1155,1155,1155,1155,1155,1155,1155,1155,1155,1155,1155,1155,1155]","leafArr":"[0,1,2,3,4,5,6,7,8,9,10,11,12,13]","sd":"[\"RIGHT\",\"LEFT\",\"RIGHT\",\"LEFT\",\"RIGHT\",\"LEFT\",\"RIGHT\",\"LEFT\",\"RIGHT\",\"LEFT\",\"RIGHT\",\"LEFT\",\"RIGHT\",\"LEFT\"]"}</script>
 <script type="text/javascript" src="http://localhost:8080/application/js/GnuBookTest.js"></script>
 </div>
</div>

在 GnuBookTest.js 文件中,我尝试使用以下值:

br = new BookReader();

// Return the width of a given page.
br.getPageWidth = function(index) {
     return this.pageW[index];
}

// Return the height of a given page.
br.getPageHeight = function(index) {
    return this.pageH[index];
}

br.pageW = JSON.parse(result.wArr);

br.pageH = JSON.parse(result.hArr);

br.leafMap = JSON.parse(result.leafArr);

//istack is an url fragment for location of image files
var istack = result.istack;
.
.
.

使用我上面编写的 JSON.parse 加载 Bookreader 并在一些网络浏览器中正确使用我的值:Firefox、IE8 和桌面 Safari;但在 mac-Chrome、mobile-Safari 以及旧版本的 IE 中根本不起作用。 Mobile safari 不断给我一个引用错误消息:找不到变量:JSON。其他浏览器只是不加载 Bookreader 并显示“x”,就像它们没有从 php 脚本中获取值一样。

问题出在哪里?

最佳答案

较旧的浏览器没有 native JSON 支持。您可能必须include it手动。

关于php - 为什么这个 JSON.parse 代码不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2534109/

相关文章:

php - MySQL DateTime 使用 PHP 增加 1 分钟

php - usort - 更多参数

javascript - 显示鼠标位置

javascript - 更改运行php代码的链接的值

mysql - 在 MySQL 中对 JSON 字段进行全文搜索

javascript - 无法将 json 文件数据渲染为 html

php - 正则表达式替换文件扩展名

php - 在数据库插入之前验证 xlsx 文件的正确方法

javascript - 回调的响应问题

Android、日语和 JSON