簡體   English   中英

為什么此JSON.parse代碼不起作用?

[英]Why does this JSON.parse code not work?

我試圖將json編碼的值從php腳本傳遞到一個GnuBookTest.js javascript文件,該文件啟動Bookreader對象並使用我通過名為“結果”的變量傳遞的值。

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,移動Safari和舊版IE中根本無法使用。 移動瀏覽器不斷給我一個參考錯誤msg:找不到變量:JSON。 其他瀏覽器只是不加載Bookreader而是顯示“ x”,就像它們沒有從php腳本中獲取值一樣。

問題出在哪兒?

較舊的瀏覽器沒有本機JSON支持。 您可能必須手動添加它

較舊的瀏覽器確實支持JSON,但不支持JSON.parse 要在舊版瀏覽器中加載JSON數據,您只需使用

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM