2011-01-12 6 views
0

j'essaie de comprendre où est mon erreur, et je ne peux pas le trouver: c'est mon codeJson jquery IE8 question

javascript:

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

et fichier 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] 
     }, 
    ] 
} 

Fonctionne bien dans IE7, FF, mais ne fonctionne pas dans IE8

Pouvez-vous m'aider, quel est le problème ici?

PS: en utilisant la version 1.4.3 jquery

Merci!

+0

Que se passe-t-il dans IE8? – polarblau

Répondre

3

Vous avez JSON invalide, une virgule de fin:

}, 

C'est JSON illégale, tolérée par tous les navigateurs sauf IE.

+0

ohh, mec, je suis désolé comment je pourrais manquer ça, merci !! – AlexC

1

Votre problème est que vous utilisez la fonction javascript d'alerte pour le débogage, qui est un appel bloquant. Cela change le comportement du javascript. Pour le débogage, utilisez jQuery pour ajouter l'élément à ul ou à debug en utilisant 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> 

Cette approche a fonctionné pour moi dans FF et IE8.

+0

Il a également travaillé avec votre fichier de données JSON d'origine. – tawman