首先,我正在使用的Web應用程序需要使用IE8,它使用ES3 JavaScript標準而不是ES5。我正在利用es5-shim.js庫希望它可以幫助,但不幸的是,它不能修復拋出的異常,防止微風初始化。IE8引發hasOwnProperty未定義的異常與breeze.debug.js
下面是代碼breeze.debug.js這似乎是問題的一部分塊,如不及時救治IE8讀取hasOwnProperty爲未定義根:
Enum.prototype.getNames = function() {
var result = [];
for (var key in this) {
if (hasOwnProperty.call(this, key)) {
if (key != "name" && key.substr(0, 1) !== "_" && !core.isFunction(this[key])) {
result.push(key);
}
}
}
我有一個額外的例外另一個叫做微風的.js文件如下:var manager = new breeze.EntityManager(window.Urls.dataModelApiUrl);
這裏的微風被IE8讀爲未定義,我想象因爲breeze.debug.js從來沒有正確初始化過。
任何adivce /幫助/建議,以幫助解決這個問題將不勝感激!
編輯:附加信息:出於測試目的,我使用了es5-shim測試網站,可以在上面的es5-shim鏈接中找到,我在網站中包含了對breeze.debug.js的引用,該網站是拋出相同的確切例外。我一直在深入研究這個,但是我還沒有取得任何進展。再次,任何幫助將不勝感激!
謝謝,
更新::我編輯了上面的代碼塊以使用「Enum.prototype.hasOwnProperty.call ...」 這似乎解決了這個問題。微風似乎根據需要進行初始化,並且應用程序正在運行(更詳細的測試將遵循)。據我的理解,這個改變直接從Enum.prototype中取出hasOwnProperty,而不是假設它已經在空間中可用。 儘管我不確定這是否是一個正確的解決方案,但這是我純粹嘗試過的東西。在測試應用程序後,我會知道更多信息,看看是否有任何結果。 – FarhanNS 2013-02-20 19:52:03
感謝您推動痛苦。我已經爲此提交了一份缺陷報告。 – Ward 2013-02-24 22:29:07