辞書からキーのリストを返すプログラムがあります。コードは 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: {}
}