2013-01-15 55 views
1

我正在處理ExtJS應用程序,並且存在Internet Explorer的兼容性問題。該應用程序中斷,並引發相應於該行的代碼中的錯誤:確定execScript拋出錯誤的原因

execScript(code); 

使用IE開發者工具,我發現的代碼變量包含定製的組件類的聲明。我不知道是什麼導致這個錯誤。我已經檢查過這個文件3次(1400行代碼)。對於記錄,這完美的Firefox和Chrome瀏覽器...

所以,我想知道是否有一種方式瞭解更多有關哪裏出了問題,得到像行號或堆棧跟蹤,所以我可以糾正這一點。

任何幫助表示讚賞。謝謝 !

+0

是的,這就是我知道應用程序在execScript中突破的原因。但我不能再深究 – 3rgo

+0

「代碼」中的字符串究竟是什麼樣子? – Pointy

+0

這是一個類聲明。它可以在這裏找到:https://github.com/JoeKuan/Highcharts_Sencha/blob/master/Chart/ux/Highcharts.js – 3rgo

回答

0

有完全相同的問題。

找出問題的原因花了很長時間,但在我們的例子中,我們從兩個獨立的對象文字(Status和StatusElements)創建了一個雙數組。見下文。

Status = { 
    'new': 10, 
    'automatic': 15} 

StatusElements = { 
    10: { name: 'new', color: 'black', bgcolor: '#ffd3cf'}, 
    15: { name: 'automatic', color: 'black', bgcolor: '#'}} 

var y = [ 
    [Status.new, StatusElements[Status.new].name], 
    [Status.automatic, StatusElements[Status.automatic].name] 
    ] 

由於某種原因,Internet Explorer在試圖評估上面的y時爆炸。

我真的不知道爲什麼execScript(code);在Internet Explorer中使用上述代碼失敗。也許這是評估的順序。也許它會在評估Status和StatusElements之前嘗試評估y。無論如何,我們通過降低複雜性和僅僅等於一些原始值來修復它。

相關問題