Javascript в iPhone Web App: JSON для цикла не отображается - PullRequest
1 голос
/ 21 января 2010

У меня есть следующий код для отображения результатов JSON из запроса AJAX в виде неупорядоченного списка. В Safari он работает достаточно хорошо, но в Mobile Safari на iPhone необработанные данные отображаются, а UL - нет. На самом деле цикл for не запускается.

$("#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);

}

Я думаю, это связано с моей ошибкой, заранее спасибо ...

Ben

Ответы [ 2 ]

1 голос
/ 02 сентября 2010

Я также обнаружил, что это имеет место на моем 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 голос
/ 09 марта 2010

Я столкнулся с подобной проблемой при попытке использовать набор переменных с JSON.parse () и просмотре результатов через браузер мобильного сафари на itouch: отладчик мобильного сафари показывает, что это,

не может найти переменную JSON

.

После некоторого поиска в сообщении об ошибке появляется сообщение о том, что мобильное сафари в настоящее время не поддерживает JSON.parse. Что объясняет, почему ваш цикл for никогда не срабатывает, потому что ваши var songdata никогда не устанавливаются. Если вы найдете обходной путь, пожалуйста, напишите!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...