27

辞書からキーのリストを返すプログラムがあります。コードは Chrome、Opera、Firefox では正しく機能しますが、Internet Explorer では機能しません。問題がどこにあるかをクローズするために、アラート コメントを追加しました。以下は、問題の原因となっているコードです。アラートは順番に表示されます

  • アプリの初期化中
  • JSON の取得
  • JSONを取得しました
  • キーを取得しました (IE では表示されません)

ここで同様の質問を見つけましたが、この例では、辞書を作成したため、ネイティブ オブジェクトであるため、これは正しい質問ではないと考えています。

Object.keys が問題であるとは確信が持てなくなったので、ここに完全なページへのリンクを示します。見やすくするためにページにJavaScriptを入れています

http://www.londonlayout.co.uk/dev/live.htm

 var myApp = {
    init: function () {
        var def = $.Deferred();
        alert('App Initializing');
        $.getJSON('data/data.json', function (raw) {
            alert('Getting JSON');
            myApp.data = raw;
            $.each(myApp.data, function (code, details) {
                try {
                    myApp.nameDict[details.name] = code;
                }
                catch (e) {}
            });
            alert('Got JSON');
            myApp.names = Object.keys(myApp.nameDict);
            alert('Got Keys')
            def.resolve();
        });
        return def.promise();
    },
    data: {},
    nameDict: {}
}
4

2 に答える 2