2010-01-21 28 views
1

我有以下代碼顯示來自AJAX請求的JSON結果作爲無序列表。它在Safari中運行良好,但在iPhone上的Mobile Safari上顯示原始數據,但UL沒有。事實上for循環沒有被觸發。在iPhone Web應用程序上使用Javascript:JSON for loop not displayed

$("#results").append(data); 

var songdata = JSON.parse(data); 

var i = 0; 

for (i=0;i<=songdata.total;i++) 
{ 
    alert(i); 
    var songhtml = "<ul><li><img src=\"" + songdata.data[i].artwork + "\" /></li><li>" + songdata.data[i].title + "</li><li>" + songdata.data[i].artist + "</li><li>" + songdata.data[i].length + "</li><li>" + songdata.data[i].listen + "</li></ul>"; 
    $("#results").append(songhtml); 

} 

我希望它與我的一個錯誤的事,謝謝你了... ...

回答

1

我也發現這是我的3G運行3.1.2,但在我的iPhone 4工作的情況。無論如何,爲了避免這個錯誤,我現在包括道格拉斯克羅克福德的json2.js文件,它檢測是否瀏覽器支持JSON,如果它沒有實現它自己的。我(我相信即使Resig)也推薦使用jQuery的分析功能,因爲它支持stringify,並且根本不使用eval。 (jQuery的確,或者至少使用過,在舊瀏覽器上回退到eval)。這裏是您可以下載和主持的文件:

https://github.com/douglascrockford/JSON-js/blob/master/json2.js

1

試圖用一個變量集與JSON的時候我遇到了類似的問題.parse()和觀看上的iTouch的經由移動Safari瀏覽器的結果:移動Safari調試器顯示它,

找不到可變JSON

在做了一些關於錯誤消息的谷歌搜索之後,有人說移動Safari目前沒有JSON.parse支持。這可以解釋爲什麼你的for循環從不觸發,因爲你的var songdata永遠不會被設置。如果您找到解決方法,請發佈!

+0

哇謝謝你回到這裏。 – Ben 2010-03-10 11:10:10