0

この配列を反復してマップにピン留めしようとしていますが、すべてのブラウザーで正常に動作しているように見えますが、IE8 では "SCRIPT5007: プロパティ 'top' の値を取得できません: オブジェクトが null または未定義です" というエラーが表示されます。トップを別のものに変更したり削除したりすると、IEは左や名前などについて同じことを言うだけです。誰か提案があれば、大歓迎です。

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>');
    }


});
4

2 に答える 2

3

@Guffaは正しいです。「Canada」行の末尾のコンマが無効です。

IE は、実際に文句を言う唯一のブラウザーですが、技術的にはどこでも無効です。

このような問題を回避するには、JSHintなどのツールを使用する必要があります。これは、Javascript コードを検証して、末尾のカンマ バグなどの一般的なエラーをコーディングします。

于 2013-02-25T15:06:47.217 に答える
0

IEで最後のJSON オブジェクトの後にコンマを指定すると、 IE6、IE7、IE8 でエラーが発生します。

だから、Javascript、JSONを書くときはいつもこれを覚えておいてください

于 2013-02-25T17:46:34.547 に答える