2013-02-25 2 views
0

Я пытаюсь перебрать этот массив на контакты на карте, в каждом браузере он работает нормально, но в IE8 я получаю сообщение об ошибке «SCRIPT5007: невозможно получить значение свойства 'top': объект имеет значение null или undefined. Если я перехожу к чему-то другому или удаляю его, IE просто говорит то же самое о левом или имени и т. д. Если бы у кого-то были какие-то предложения, они были бы весьма признательны.Свойство объекта Json не определено только в IE8

jQuery(document).ready(function(){ 
    var pins = [ 
      { "name":"Mexico", "top":"154" , "left":"176", "imageFile":"Mexico.jpg", "soundMP3File":"Mexico_GMartinez_1.mp3", "soundOGGFile":"Mexico_GMartinez_1.ogg"}, 
      { "name":"Chile", "top":"261" , "left":"246", "imageFile":"Chile.jpg", "soundMP3File":"Chile_MVelasquez_1.mp3", "soundOGGFile":"Chile_MVelasquez_1.ogg"}, 
      { "name":"Trinidad and Tobago", "top":"182" , "left":"242", "imageFile":"TrinidadTobago.jpg", "soundMP3File":"Trinidad-Tobago_SHarris_1.mp3", "soundOGGFile":"Trinidad-Tobago_SHarris_1.ogg"}, 
      { "name":"Columbia", "top":"209" , "left":"227", "imageFile":"Columbia.jpg", "soundMP3File":"Colombia_JGordon_2.mp3", "soundOGGFile":"Colombia_JGordon_2.ogg"}, 
      { "name":"Canada", "top":"86" , "left":"208", "imageFile":"Canada.jpg", "soundMP3File":"Canada_KBretzer_1.mp3", "soundOGGFile":"Canada_KBretzer_1.ogg"},    
      ]; 

for(var i = 0; i < pins.length; i++) 
    { 
     jQuery('#map #pins-container').append('<a href="#" class="pin" style="top: ' + pins[i].top + 'px; left:' + pins[i].left + 'px;" pinindex="' + i + '" name="' + pins[i].name + '"></a>'); 
    } 


}); 
+5

У вас есть Запятая после последнего объекта в массиве. Удалите это. – Guffa

ответ

3

@ Guffa - это право. Задняя запятая в строке «Канада» недействительна.

IE - единственный браузер, который действительно будет жаловаться на него, но он технически недействителен во всем мире.

Чтобы избежать подобных проблем, вы должны использовать такие инструменты, как JSHint, который будет проверять ваш код Javascript для кодирования распространенных ошибок, в том числе ошибки конечной запятой.

+0

Примечание: JShint интегрирован в JSfiddle.net. Я призываю вас пойти этим путем. – Hugolpz

0

В IE Если вы даете запятую после последнего JSON объект это даст ошибку в IE6, IE7, IE8.

Итак, всегда помните, что это когда-либо вы пишете Javascript, JSON

Смежные вопросы