1

IE 8 ページで次のエラーが表示されます (このページは他のブラウザーでは正常に動作しています)。

User Agent: Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; WOW64; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; .NET4.0C; .NET4.0E; InfoPath.3)
Timestamp: Wed, 10 Sep 2014 06:48:45 UTC

Message: Object doesn't support this property or method
Line: 70532
Char: 5
Code: 0

上記のファイルの 70532 行を確認したところ、次のコードが表示されました。

if (!Object.create && !Object.create(null).hasOwnProperty) {
      throw new Error("This browser does not support Object.create(null), please polyfil with es5-sham: http://git.io/yBU2rg");
    }

es5-sham でポリフィルしてください:

 Please polyfil with es5-sham: http://git.io/yBU2rg

ここに画像の説明を入力

このエラーを修正するにはどうすればよいですか。

4

2 に答える 2

4

Object.createは IE8 でサポートされていないため、フレームワークはそれを「ポリフィル」するように求めています。つまり、ネイティブでサポートされているはずのものを実装する必要がありますが、何らかの理由で、この特定の環境はそれを認識していません。

つまり、使用したい場合Object.createは自分で実装する必要があります。URL ( https://github.com/es-shims/es5-shim/blob/master/es5-sham.js ) は、必要なポリフィルを含むファイルを指しています。フレームワーク スクリプトを実行する前に、そのスクリプトを実行するだけです。

更新:
この行は私には壊れているようです: !Object.create && !Object.create(null).hasOwnProperty.
そこにない場合Object.createは、のように呼び出すとObject.create(null)エラーが発生するはずですが、「未定義は関数ではありません」のようにする必要があると思います。

于 2014-09-10T08:09:05.157 に答える