【问题标题】:Why does this JSON.parse code not work?为什么这个 JSON.parse 代码不起作用?
【发布时间】:2023-03-03 00:25:02
【问题描述】:

我正在尝试将 json 编码值从 php 脚本传递到启动 Bookreader 对象的 GnuBookTest.js javascript 文件,并使用我通过名为“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 中根本不起作用。移动 safari 不断给我一个参考错误消息:找不到变量:JSON。其他浏览器只是不加载 Bookreader 而是显示“x”,就像他们没有从 php 脚本中获取值一样。

问题出在哪里?

【问题讨论】:

    标签: php javascript json parsing encode


    【解决方案1】:

    旧版浏览器不支持原生 JSON。您可能必须手动 include it

    【讨论】:

      【解决方案2】:

      旧版浏览器确实支持 JSON,只是不支持JSON.parse。要在旧浏览器中加载 JSON 数据,您可以简单地使用

      var obj = eval('('+jsonStr + ')');
      

      【讨论】:

      • $Jeff Beaman,我也面临同样的问题。它适用于其他浏览器,但不适用于 IE。我没有这段代码: $.ajax({ url: 'get_cpu.php', success: function(data) { var myObj = JSON.parse(data); 有什么想法可以修改吗?我尝试了你的方法,没有运气。
      猜你喜欢
      • 1970-01-01
      • 2018-11-05
      • 2012-02-22
      • 2017-10-02
      • 2016-07-10
      • 2010-12-14
      • 2017-04-09
      • 2013-01-30
      • 2014-05-23
      相关资源
      最近更新 更多