javascript
【转】调试JavaScript 错误的解决方案
A? 使用alert() 和document.write() 方法監(jiān)視變量值
如果要中斷代碼的運(yùn)行,監(jiān)視變量的值,則使用alert() 方法;
如果需要查看的值很多,則使用document.write() 方法,避免反復(fù)單擊“確定”按鈕;
B? 使用window.onerror 事件
當(dāng)頁面出現(xiàn)異常時(shí),onerror 事件會在window 對象上觸發(fā)。它能在一定程度上告訴開發(fā)者相關(guān)的錯(cuò)誤信息。
示例:
<script type="text/javascript">
function myerror(_message,_url,_line)
{
alert("錯(cuò)誤信息:" + _message
+"\n錯(cuò)誤的URI:" + _url
+"\n錯(cuò)誤的行數(shù):" + _line
);
return true; //屏蔽系統(tǒng)的事件
}
//綁定錯(cuò)誤事件
window.onerror = myerror;
//觸發(fā)錯(cuò)誤示例:
window,onload = test;
</script>
注意:在IE 中,觸發(fā)error 事件后,正常的代碼會繼續(xù)運(yùn)行,所有的變量和數(shù)據(jù)都會保存下來,在其onerror 事件處理方法中可以正常訪問到;而在Firefox 中,觸發(fā)error 事件后,一切都結(jié)束,所有的變量和數(shù)據(jù)都將被銷毀。
C? 使用 try...catch 語句找錯(cuò)誤
示例:
<script type="text/javascript">
try
{
alert(觸發(fā)異常);
}
catch (_ex) //可以省略“_ex”參數(shù)
{
var err = "錯(cuò)誤信息";
for (var i in _ex)
{
err += "\n參數(shù)名:" + i
+ "\t參數(shù)值:" + _ex[i];
}
alert(err); //打印錯(cuò)誤
}
finally //finally 可以被省略...
{
alert("finally 總是會運(yùn)行");
}
</script>
注意:try...catch 并不能很好的處理JavaScript 的語法錯(cuò)誤。
示例:
<script type="text/javascript">
try
{
alert("觸發(fā)語法錯(cuò)誤")); //多了半邊“)”
}
catch (_ex) //可以省略_ex參數(shù)
{
var err = "錯(cuò)誤信息";
for (var i in _ex)
{
err += "\n參數(shù)名:" + i
+ "\t參數(shù)值:" + _ex[i];
}
alert(err); //打印錯(cuò)誤
}
</script>
該示例并沒有進(jìn)入catch 塊中。
D? 使用相關(guān)調(diào)試器
在IE 和Firefox 瀏覽器中,可以使用相關(guān)的調(diào)試器或插件對JavaScript 進(jìn)行調(diào)試。
●? 在Firefox 瀏覽器中,可以使用其自帶的“錯(cuò)誤控制臺”。操作步驟如下:
????? 打開Firefox 瀏覽器 → 在菜單條“工具”中 → 選擇“錯(cuò)誤控制臺”即可。
????? 在沒有其他插件的情況下,其自帶的“錯(cuò)誤控制臺”是一個(gè)非常不錯(cuò)的選擇。
另外,在Firefox 瀏覽器中,還有一些很不錯(cuò)的調(diào)試器,如:Venkman、Firebug 等。
?????? Venkman 調(diào)試器安裝后,可以在Firefox 瀏覽器 → 在菜單條“工具”中 → 選擇“JavaScript? Debugger ”命令啟用;
?????? Firebug 調(diào)試器安裝后,可以在Firefox 瀏覽器 → 在菜單條“工具”中 → 選擇“Firebug”→ 選擇“打開 Firebug”即可;
●? 在IE 瀏覽器中,可以使用 Microsoft? Script? Debugger 調(diào)試器
????? Microsoft? Script? Debugger 是微軟隨IE 4 一同發(fā)布的一個(gè)IE插件,可以從微軟的官方網(wǎng)站上免費(fèi)下載。
下載安裝以后,必須將IE 瀏覽器的調(diào)試選項(xiàng)打開才能使用。操作步驟如下:
?????? 1>?? 打開IE 瀏覽器 → 選擇菜單欄的“工具”→ “Internet 選項(xiàng)”命令 → “高級”選項(xiàng)卡 → 將“禁用腳本調(diào)試(Internet Explorer )”復(fù)選框中的勾去掉即可。
?????? 2>?? 當(dāng)IE 瀏覽器正在瀏覽頁面時(shí),運(yùn)行Microsoft? Script? Debugger 調(diào)試器工具即可進(jìn)行調(diào)試。
?????? 在Microsoft? Script? Debugger 調(diào)試器的 Running? Document 面板中選擇開啟的頁面文件(只讀),然后按F9 可以設(shè)置斷點(diǎn)調(diào)試。另外,其Command? Window 面板也是一個(gè)很有用的功能,它能在代碼斷點(diǎn)停止時(shí),在其中輸入變量名并回車,便可看到此時(shí)變量的值;Command? Window 面板甚至可以接受簡單的JavaScript 命令。但Microsoft? Script? Debugger 調(diào)試器自身還存在一個(gè)bug 問題。
Windows Script Debugger 官方下載
●? 在IE 瀏覽器下,還可以使用的JS 調(diào)試工具 companion.js
一款像firefox 中的firedebug 工具類似的一個(gè)工具包,它的特點(diǎn)就是可以有好的提示錯(cuò)誤,并且可以在IE 瀏覽器下方出現(xiàn)控制臺輸出,方便及時(shí)調(diào)試。
Companion.JS 官方介紹
具體使用可參考這篇文章:http://hi.baidu.com/argv/blog/item/f4efe67ac370f7e12f73b3ad.html
Microsoft Script Debugger及companion.js調(diào)試工具[下載]
?
?
原文地址:調(diào)試JavaScript 錯(cuò)誤的解決方案
轉(zhuǎn)載于:https://www.cnblogs.com/shong/archive/2010/09/08/1821557.html
總結(jié)
以上是生活随笔為你收集整理的【转】调试JavaScript 错误的解决方案的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: UML之误区
- 下一篇: Devexpress 重新编译以后 重新