[英]there's a Javascript/Ajax error message in Internet Explorer 8! by the way this is not the shocking part
[英]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.