2012-05-30 103 views
0

我在調試12K行JavaScript代碼。當然它是由離岸團隊寫的。現在,我需要找出當我與UI進行交互時調用哪個js函數。無論如何我只是自動跳到正在執行的函數中?調試JavaScript VS 2008

我真的不能把一個突破點,因爲我不知道在哪裏放置斷點?

應用程序僅在IE7上運行!

+0

安裝IE8並在IE7模式下運行。在那裏使用調試器。升級應用程序,使它在任何瀏覽器中運行,因爲IE7會再見! :) – epascarello

回答

0

您可以將VS 2008附加到像Internet Explorer這樣的腳本宿主進程。請注意,「腳本宿主」特定於Windows腳本平臺,而其他瀏覽器未使用該平臺。

Internet Explorer應配置爲「允許腳本調試」,以便VS可以附加到iexplorer.exe 能夠調試在其中運行的腳本。

請記住,這是一個非常令人沮喪的調試體驗。如果您可以在更現代的瀏覽器(包括IE9,其中有體面的開發人員工具)進行調試,請這樣做!

0

將Visual Studio附加到IE7後,可以使用Break All選項來終止任何正在運行的腳本。如果沒有腳本正在運行,它將在執行腳本時中斷,例如,如果將鼠標懸停在具有onmouseover偵聽器的鼠標上。

enter image description here

,如果你正在尋找一個特定的一段代碼這可能會有點麻煩。除了追蹤代碼直到找到相關部分之外,我認爲除了追蹤代碼之外,還沒有真正解決這個問題的方法。

如果這是一個單擊按鈕時發生的錯誤,例如,請查看該按鈕的HTML代碼。如果它有一個onclick處理函數,那麼搜索該函數並在那裏設置一個斷點,或者將debugger;這個詞添加到該函數的頂部。如果沒有onclick處理程序,請在您的Javascript代碼中搜索該按鈕的ID,並查看是否有任何偵聽器綁定到該DOM元素。

真的沒有理由爲什麼12000行的Javascript代碼應該挫敗你的努力,看看發生了什麼。找到問題的repro,然後使用Find在JavaScript文件中查找相關代碼。另外,我意識到您的網站可能無法在Firefox或Chrome中運行,但它可能在IE8中運行,因爲它向後兼容。 IE8有一個更好的調試器,並且還能夠探索各種DOM元素,這些元素可以用於跟蹤哪些代碼在哪裏運行。

希望這會有所幫助!

+0

問題是沒有onclick。一切都在飛行中生成,然後注入到DIV中。 – azamsharp

+0

我建議安裝IE Developer Toolbar。它將允許您在運行時檢查DOM。 http://www.microsoft.com/en-us/download/details.aspx?id=18359 –