工作中使用ExtJS的2.2.1,我有這應該利用來加載從服務器一段HTML的容器元素:ExtJS的:自動加載不能在IE
autoLoad: { url: 'someurl' }
這工作正常,在Firefox ,但對於IE7這導致在內線,全debug.js語法錯誤在行7170:
this.decode = function(json){
return eval("(" + json + ')');
};
我通過開啓該功能到這個固定的:
this.decode = function(json){
return eval('(function(){ return json; })()');
};
然後自動加載運行良好兩個瀏覽器,但後來有一些奇怪的錯誤,此外,你真的不想在ExtJS的庫來解決這個問題,因爲這將是難以維護(尤其是在縮小的EXT-all.js這是就像一條線上的半個Javascript腳本一樣)。
我一直沒能找到很多關於這個錯誤。
的變化,我試過:
// With <script> tags around all the HTML
autoLoad: { url: 'someurl', scripts: true }
// With <script> tags around all the HTML
autoLoad: { url: 'someurl', scripts: false }
,反之亦然沒有<script>
標籤。 HTML中沒有任何Javascript,但它應該是可能的,因爲最終我們將在返回的HTML中使用Javascript。
的問題是不是在HTML,因爲即使是最簡單的可能HTML,錯誤是一樣的。
更新 - 響應多諾萬:
哪裏,這是使用最簡單的情況是這樣的一個:
changeRolesForm = new Ext.Panel({
height: 600,
items: [{ autoScroll: true, autoLoad: WMS.Routing.Route("GetRolesList", "User") + '?userID=' + id}]
});
沒有這裏涉及到數據存儲。響應類型也是text\html
,而不是json,所以不能混淆它。正如所說的,它在Firefox中運行得很好,在Firefox中,它也執行相同的功能,但沒有錯誤。所以它不像Firefox遵循不同的執行路徑,它是一樣的,但沒有eval
上的錯誤。
沒有任何「答案」解決了錯誤只發生在IE中的事實。我們在Ext 3.3.0中仍然遇到同樣的情況。 – 2011-02-10 22:11:58
嗨朱利安,如果你看看FireBug,從服務器返回什麼?如果請求和響應已發佈(包括頭文件),Ext會在服務器調用服務器之後進行調用 – 2011-02-11 21:36:00