1

這樣做後,它會失敗:加載道場在Internet Explorer 8失敗

<script type="text/javascript" src="/js/dojo-release-1.7.2-src/dojo/dojo.js"></script> 

在聲明中拋出一個錯誤(在這個版本,1.7.2,它是線260)

return new XMLHttpRequest(); 

是:「TypeError:對象不支持此方法或屬性」

愚蠢的是,該行執行很多次(甚至可能超過100)沒有任何問題,並且它似乎不依賴於任何變量。不幸的是,它在某個時候失敗了。我換用線:

try{ 
    foo = new window.XMLHttpRequest(); 
    return foo; 
} catch(e) { 
    console.log("OUCH, ERROR."); 
    console.log(typeof window.XMLHttpRequest); 
    console.log(e); 
} 

,輸出:

OUCH ERROR. 
object 
TypeError: Object doesn't support this method or property 

我完全迷失了方向,爲window.XMLHttpRequest似乎是一個對象,我爲什麼不能「新」呢?任何關於如何調試的建議都會受到歡迎。

我覺得非常困惑的是,只有當我使用鏈接轉到此頁面時纔會出現此錯誤。當我使用F5刷新頁面時,一切正常,沒有錯誤,什麼都沒有。

此外,它在Internet Explorer 9,Firefox和Chrome中運行無瑕。

+0

這聽起來有點奇怪,因爲自從6 n起,IE支持XMLHttpRequest。無論是你的IE安裝是fubar還是渲染引擎中的一些小故障,使得dojo loader在窗口本身準備就緒之前運行.. – mschr

+0

這裏是你的try/catch上面的一個小小的jsfiddle。 http://jsfiddle.net/pcrager/cjpZj/當你使用IE8安裝去那裏時會發生什麼? – mccrager

+0

我已經在ie8的多個安裝中運行了它,最終在Windows 7的「Windows XP模式」下運行,後者隨ie6升級到ie8。我有一種強烈的感覺,這是一種競爭狀態,這是由打開鏈接或刷新頁面之間的不同結果提示的。雖然我不能將int映像爲一個簡單的競爭條件,就像在調用之前未加載X一樣,因爲在拋出錯誤之前語句工作了很多次。小提琴在我的ie8安裝中運行良好,正是這是什麼嚇壞了我:) – Herbert

回答

1
  1. 清除緩存完全在瀏覽器
  2. 刪除你有沒有原生
  3. 如果仍發出你的HTML
    • 運行XML驗證
    • 確保所有組件(的ActiveX) DOCTYPE正確
    • 檢查自閉合/非閉合標籤
+0

我不知道爲什麼,如果你這樣做,請解釋它:)但這似乎是麻煩的聲明:。這是在文件的頭部,刪除它解決了問題。 – Herbert

+1

在某些時候,我遇到過類似的問題,關於IE和charset unicode。嘗試一個,使用UpperCase UTF-8,當然,確保加載的所有內容都編碼在這個字符集中。在這裏查看兩個最重要的結果:https://www.google.com/search?q = meta + http-equiv + content + type + utf8 + internet + explorer – mschr

+1

哦,這就是爲什麼驗證XMLDocument如此重要btw;如果在''期間選擇了不支持的設置/模式,那麼瀏覽器和JS工具包會進入怪癖模式,這是...至少可以說至少 – mschr