Объект не поддерживает это свойство или метод EmberJs IE 8 проблема
Я получаю следующую ошибку на моей странице 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");
}
Что это означает, пожалуйста, polyfil с es5-sham:
Please polyfil with es5-sham: http://git.io/yBU2rg
Как я могу исправить эту ошибку.
2 ответа
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)
должен выдать ошибку, но я думаю, что это должно быть что-то вроде "undefined не является функцией".
Я нашел другой polyfil, который работает в моем сценарии. Я нашел ответ по этой ссылке.
Я добавляю код формы по этой ссылке
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();
};
}
добавление этого кода, кажется, делает трюк для меня. Единственное изменение, которое я сделал, я прокомментировал код, в котором генерируется исключение, так как оно приводит к другой ошибке.