2010-07-27 38 views
0

我正在嘗試調試大量複雜的Web應用程序,它們大量使用DIV,AJAX,動態HTML和服務器端代碼來完成其工作。有什麼工具可以跟蹤IE7 javascript問題?

在正常操作下,我們沒有問題。但是,當我們將webapp放入IFRAME中時,某些函數會在IE7中觸發崩潰,導致瀏覽器無法運行(所有使用的CPU)。

有什麼工具可以幫助追蹤可能發生的事情?將IE進程載入調試器給了我各種有關寄存器的迷人信息,但我認爲問題出在javascript上。

我們已經找到了一個問題的應用程序已經是涉及元素的不正確重排根(東西依附於的document.window.代替)

我寫的轉儲IFRAME的innerHTML進入測試IFRAME頁textarea,所以它可以在各種狀態下進行比較,但只顯示靜態屬性,我無法確定哪些javascript事件與元素相關聯或確定處理程序是否正在觸發。

IE8,Firefox,Chrome等沒有相同的行爲。

理想情況下,我希望能夠讓我在已知良好狀態下快照DOM(或JavaScript VM?),然後「就在它發生之前」,以便我們可以找出添加/刪除/缺失/不同。那裏有什麼?

更新:我現在試圖使用IE開發工具欄來追蹤它。

更新2:的IE7崩潰發生時跟隨這AJAX代碼:

function Sys$UI$Control$get_element() { 
    /// <value domElement="true" locid="P:J#Sys.UI.Control.element"></value> 
    if (arguments.length !== 0) throw Error.parameterCount(); 
    return this._element; 
} 

return this._element;線之前,我失去了IE瀏覽器出現這種情況的最後一件事。

回答

6
  1. IE開發人員的工具欄。下載它here(IEDevToolBarSetup.msi)。
  2. 有關JavaScript調試,請參閱this blog
+0

太棒了,忘了這一點。我使用的是古老的Microsoft Script Debugger,它至少在死亡之前找到了「最後的好函數調用」 - 在Microsoft.Ajax.js中的東西... – mwalker 2010-07-27 20:44:45

+0

默認情況下嵌入在IE 7及更高版本中。對於6和以下你需要下載工具欄。 – 2010-07-28 11:14:04

0

IE開發人員工具欄肯定幫助很多。 Visual Studios的調試器也非常好,如果你能得到一臺帶有VS和IE7的機器的話。

+0

我的測試虛擬機上有Visual Studio Web Developer,但我永遠無法讓調試器啓動,因此我可以逐步完成代碼。我最終使用古老的Microsoft Script Debugger來查找特定的崩潰點。 – mwalker 2010-07-28 16:08:57

1

通過將'調試器'放置在您想要開始調試的位置的JavaScript文件中,您可以在Visual Studio中調試javascript以及跟蹤,調用堆棧等等。

+0

這個答案應該有某種例子或者至少是一個例子的鏈接。 – hitautodestruct 2011-11-07 09:29:03

2

有人制作了一個名爲Internet Explorer Collection的軟件包。它包含6種不同的IE瀏覽器,從IE6到IE8的不同版本。所有這些包括Firebug(真的,它的作品)和Internet Explorer開發工具欄。

這對我調試IE7問題真的很有幫助。

請參閱this鏈接。

0

DynaTrace是一個用於IE7的分析工具。但是,它提供了大量的信息(包括JS堆棧),所以它對調試也很有幫助。

0

IE 7和IE 8內置了調試工具。按F12,您就可以進行調試了。另外螢火蟲firefox和鉻的檢查元素選項是有用的/

+1

這只是IE8內置的,Chrome和Firefox不會出現崩潰。 – mwalker 2010-07-28 16:07:45

相關問題