1

Я получаю следующую ошибку на моей странице IE 8 (страница работает отлично в других браузерах).Объект не поддерживает это свойство или метод EmberJs IE 8 issue

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

Что это подразумевает под Пожалуйста polyfil с ES5-притворство:

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

enter image description here

Как исправить эту ошибку ,

ответ

4

Object.create не поддерживается в IE8, поэтому ваша инфраструктура просит вас «полифил», что означает, что вам нужно реализовать что-то, что должно было поддерживаться изначально, но по какой-то причине эта конкретная среда не знает о Это.

Это означает, что если вы хотите использовать Object.create, вам необходимо реализовать его самостоятельно. Fortunatelly, вам не нужно много делать, url (https://github.com/es-shims/es5-shim/blob/master/es5-sham.js) указывает на файл, содержащий необходимые полисы. Просто запустите этот скрипт перед созданием сценария фреймворка.

обновление:
Эта строка кажется мне сломанной: !Object.create && !Object.create(null).hasOwnProperty.
Если Object.create не существует, называя его, как Object.create(null) следует выбросить ошибку, но я думаю, что это должно быть что-то вроде «undefined is not a function».

+0

Благодарим за быстрый ответ. Даже после включения polyfil js, я получаю ту же ошибку в той же строке – SharpCoder

+0

wait, это строка из исходного кода рамки? '! Object.create &&! Object.create (null) .hasOwnProperty', потому что это кажется мне сломанным. Если 'Object.create' не существует, называя его как' Object.create (null) ', должен вызывать ошибку, но я думаю, что это должно быть что-то вроде« undefined is not a function ». Вы уверены, что это проблема, которая вызывает проблему? –

+0

Проблема с кодом рамки. Когда я получаю ошибку, ошибка содержит строку, которая указывает на эту строку. – SharpCoder

2

Я нашел еще один полифильм, который работает в моем сценарии. Я нашел ответ на этом link.

Я добавляю форму кода, ссылки

if (!Object.create) { 
    Object.create = function(proto, props) { 
     if (typeof props !== "undefined") { 
      throw "The multiple-argument version of Object.create is not provided by this browser and cannot be shimmed."; 
     } 
     function ctor() { } 
     ctor.prototype = proto; 
     return new ctor(); 
    }; 
} 

добавить этот код, кажется, делает трюк для меня. Только изменение, которое я сделал, я прокомментировал код, в котором возникает исключение, поскольку оно приводит к другой ошибке.