2011-01-12 3 views
0

Я пытаюсь понять, где моя ошибка, и я не могу найти его: это мой кодJson JQuery ie8 вопрос

Javascript:

$(document).ready(function(){ 
     $.getJSON('ajax/data.json', function(data) { 
      $.each(data.results, function(i,item){ 
        alert(item.foo); 
       }); 
     }); 
    }); 

и data.json файл:

{ 
    "results":[ 
     { 
      "foo": "The quick brown fox jumps over the lazy dog.", 
      "bar": "ABCDEFG", 
      "baz": [52, 97] 
     }, 
     { 
      "foo": "The quick brown fox jumps over the lazy dog.", 
      "bar": "ABCDEFG", 
      "baz": [52, 97] 
     }, 
    ] 
} 

Работает отлично в IE7, FF, но не работает в IE8

Помогите мне, что здесь не так?

PS: с помощью 1.4.3 JQuery версия

Спасибо!

+0

Что происходит в IE8? – polarblau

ответ

3

У вас есть недопустимый JSON, замыкающая запятая:

}, 

Это незаконно JSON, переносились всеми браузерами, кроме IE.

+0

Ой, прав, чувак, извините, как я мог пропустить это, спасибо! – AlexC

1

Ваша проблема в том, что вы используете функцию предупреждения javascript для отладки, которая является блокирующим вызовом. Он изменяет поведение javascript. Для целей отладки используйте jQuery, чтобы добавить элемент в ul или debug с помощью firebug.

$(document).ready(function(){ 
    $.getJSON('ajax/data.json', function(data) { 
     $.each(data.results, function(i,item){ 
       $('<li>').text(item.foo).appendTo('#results'); 
      }); 
    }); 
}); 

<body> 
<ul id="results"> 
</ul> 
</body> 

Использование этого подхода сработало для меня в FF и IE8.

+0

Он также работал с вашим исходным файлом данных JSON. – tawman