0

SCRIPT438: オブジェクトはプロパティまたはメソッド 'keys' をサポートしていません

IE 9.0.8112.16421 を使用すると、このエラーが表示されますが、常にではありません。2 つの環境でまったく同じアプリケーションとコード。1 つはイントラネット ホストで JBoss を実行し、もう 1 つはローカルホストで Jetty を実行しています。前者はエラーを出します。

これは失敗するコードです:

return $.get('/rest/typeaheads/' + query, function(data) {
    lastResults = data; 
>   return process(Object.keys(lastResults));  <
});

ajax-call を介して json オブジェクトとして受信したマップ lastResults を取得しました。Object.keys(...) がホスト オブジェクトに対して機能しないことは理解していますが、私の json オブジェクトは確かにホスト オブジェクトではありませんか?

では、これはどのように起こり、なぜ 2 つの環境に違いがあるのでしょうか?

4

2 に答える 2

1

どうやら; IE 9 は、イントラネット環境では、イントラネット アプリケーションはすべてがらくたであると想定します。したがって、「互換モード」に入ります。「互換モード」では、IE 7 をエミュレートします。

これに対する私の解決策は、問題についてユーザーに警告する通知を追加し、「互換モード」をオフにする説明を提供することでした。

また、IE7 をサポートする必要がある場合、これはもはや問題ではありません。キーを取得するための独自の機能を提供するアンダースコア ライブラリの使用を開始しました。

于 2013-12-17T11:31:59.033 に答える