簡體   English   中英

是否有任何好的或可靠的方法來確定JavaScript錯誤僅使用Internet Explorer錯誤消息?

[英]Is there any good or reliable way to figure out where a JavaScript error is using only an Internet Explorer error message?

我正在編寫一個應用程序,由於各種原因涉及Internet Explorer(IE7,用於記錄),ActiveX控件和英雄數量的JavaScript,它分布在多個.js包括。

我們的一個遠程測試人員遇到錯誤消息,IE的錯誤消息說明了以下情況:

Line: 719
Char: 5
Error: Unspecified Error
Code: 0
URL: (the URL of the machine)

只有一個JavaScript文件超過719行,而行719是一個空行(在本例中)。

項目中涉及的HTML或其他文件都沒有719或更多行,但生成的HTML(它是服務器端包含的東西),至少從“View Source”中顯示的IE確實有719或更多行 - 但是第719行(在這種情況下)是一個結束表行標記(換句話說,沒有JavaScript)。

在這種情況下,“查看生成的源”的結果僅為310行。

我想可能是整個頁面,其中與HTML其余部分內聯的JavaScript文件的內容可能是錯誤所指的位置,但我不知道有什么好的方法來查看它會是什么是,

那么,考慮到來自Internet Explorer的JavaScript錯誤, 其中行號是唯一的提示,但頁面實際上分布在多個文件中?

更新:由於遇到這種情況的用戶是遠程的並且由於各種網絡原因,使用像Visual Studio 2008(順便說一句,它具有很棒的JavaScript調試)之類的東西來調試它是不可能的。 我只能讓我們中的一個人看看源代碼,試圖找出它正在醞釀的代碼行。

更新2:真正的答案(如下所述)似乎是“不,不是真的”。 盡管如此,羅伯特·J·沃克(Robert J. Walker)關於它被一個人關閉的事實確實讓我指出了正確的方向,因為我認為這是違規行。 但是,因為那不是我稱之為好或可靠的(IE的錯,而不是Robert J. Walker的錯),我將接受“不,不是真的”答案。 我不確定這是否是正確的SO禮儀。 如果不是通過評論,請告訴我。

簡而言之。 並不是的。 嘗試首先在FF中找到錯誤,如果失敗,您可以使用Visual Web Developer獲得幾乎同樣好的調試器。 調試IE大部分都很糟糕。

我發現調試javascript的最好方法是在我認為代碼破壞的地方附近添加幾條Response.Write()或警報消息。 未顯示的寫入或警報最接近代碼的有問題區域。

我是這樣做的,因為我沒有找到一種更簡單的方法。

更新:如果使用此調試方法,您也可以使用寫入/警告來處理變量的內容。

IE7中的Web開發人員工具欄可以為您提供呈現的源視圖。

View > Source > Dom (Page)

當您考慮IE為腳本錯誤提供的行號時,這可能更准確。

提示:我發現許多IE錯誤消息行號被一個關閉!

通過在您的服務器上為該頁面安裝firebug lite

<script type='text/javascript' 
    src='http://getfirebug.com/releases/lite/1.2/firebug-lite-compressed.js'>
</script>

您可以使用以下方式登錄虛擬控制台:

firebug.d.console.log("stuff and things")
firebug.d.console.dir( {returnedObject:["404", "Object Not Found"]} )

並按F12,讓您的遠程測試人員為您獲取更多詳細信息。

我懷疑有一個未端接的字符串或一個不匹配的括號或括號。

不,沒有辦法讓內置的異常消息變得更少。

相反,你需要在IE上使用調試器。 我找到的最好的教程是:

http://www.berniecode.com/blog/2007/03/08/how-to-debug-javascript-with-visual-web-developer-express/

請遵循這些說明,當出現錯誤或異常時,您將在正確的文件中顯示確切的行。 您還可以在當前范圍中看到變量的值,並且可以設置“監視”項以幫助您進行調試。

除此之外,如果你需要像Firebug一樣進行日志記錄和CSS Cascade檢查,我在DebugBar和JSCompanion上都有很好的結果:

http://www.debugbar.com/ http://www.my-debugbar.com/wiki/CompanionJS/HomePage

嘗試Firebug。 我可以訪問IE: http//getfirebug.com/lite.html

您是否檢查過使用Firebug的Firefox中是否存在此錯誤? 這將是我嘗試找出此錯誤發生位置的第一步。

如果在Firefox中不存在,那么我將繼續在IE中啟用腳本調試。

我唯一的建議是:不要像這樣使用IE進行調試。 這是主流瀏覽器中最糟糕的:我嘗試使用Firefox(使用Firebug)或Chrome / Safari來處理大多數問題。

如果您必須使用IE,請安裝IE Developer Toolbar (對JavaScript錯誤似乎沒什么幫助),和/或安裝Script Debugger

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM