1、使用alert()和document.write()方法監視變量值
如果要中斷代碼的運作,監視變量的值,則使用alert() 方法;
如果需要檢視的值很多,則使用document.write() 方法,避免反複單擊“确定”按鈕;
2、使用window.onerror事件
當頁面出現異常時,onerror 事件會在window 對象上觸發。它能在一定程度上告訴開發者相關的錯誤資訊。
示例:
當頁面出現異常時,onerror 事件會在window 對象上觸發。它能在一定程度上告訴開發者相關的錯誤資訊。
示例:
<script type="text/javascript">
window.onload = function myerror(_message, _url, _line) {
alert("錯誤資訊:" + _message + "\n錯誤的URI:" + _url + "\n錯誤的行數:" + _line);
return true; //屏蔽系統的事件
} //綁定錯誤事件
window.onerror = myerror; //觸發錯誤示例:
window, onload = test;
</script>
注意:在IE 中,觸發error 事件後,正常的代碼會繼續運作,所有的變量和資料都會儲存下來,在其onerror 事件處理方法中可以正常通路到;而在Firefox 中,觸發error 事件後,一切都結束,所有的變量和資料都将被銷毀。
3、使用 try...catch 語句找錯誤
示例:
<script type="text/javascript">
try {
alert(觸發異常);
}
catch (_ex) //可以省略“_ex”參數
{
var err = "錯誤資訊";
for (var i in _ex) {
err += "\n參數名:" + i + "\t參數值:" + _ex[i];
}
alert(err); //列印錯誤
} finally //finally 可以被省略...
{
alert("finally 總是會運作");
}
</script>
注意:try...catch 并不能很好的處理JavaScript 的文法錯誤。
示例:
<
script type
=
"
text/javascript
"
>
try
{
alert(
"
觸發文法錯誤
"
));
//
多了半邊“)”
}
catch
(_ex)
//
可以省略_ex參數
{
var
err
=
"
錯誤資訊
"
;
for
(
var
i
in
_ex)
{
err
+=
"
\n參數名:
"
+
i
+
"
\t參數值:
"
+
_ex[i];
}
alert(err);
//
列印錯誤
}
<
/
script>
該示例并沒有進入catch 塊中。
4、使用相關調試器
在IE 和Firefox 浏覽器中,可以使用相關的調試器或插件對JavaScript 進行調試。
● 在Firefox 浏覽器中,可以使用其自帶的“錯誤控制台”。操作步驟如下:
1> 打開Firefox 浏覽器 → 在菜單條“工具”中 → 選擇“錯誤控制台”即可。
2> 在沒有其他插件的情況下,其自帶的“錯誤控制台”是一個非常不錯的選擇。
另外,在Firefox 浏覽器中,還有一些很不錯的調試器,如:Venkman、Firebug 等。
Venkman 調試器安裝後,可以在Firefox 浏覽器 → 在菜單條“工具”中 → 選擇“JavaScript Debugger ”指令啟用;
Firebug 調試器安裝後,可以在Firefox 浏覽器 → 在菜單條“工具”中 → 選擇“Firebug”→ 選擇“打開 Firebug”即可;
● 在IE 浏覽器中,可以使用 Microsoft Script Debugger 調試器
Microsoft Script Debugger 是微軟随IE 4 一同釋出的一個IE插件,可以從微軟的官方網站上免費下載下傳。
下載下傳安裝以後,必須将IE 浏覽器的調試選項打開才能使用。操作步驟如下:
1> 打開IE 浏覽器 → 選擇菜單欄的“工具”→ “Internet 選項”指令 → “進階”頁籤 → 将“禁用腳本調試(Internet Explorer )”複選框中的勾去掉即可。
2> 當IE 浏覽器正在浏覽頁面時,運作Microsoft Script Debugger 調試器工具即可進行調試。
在Microsoft Script Debugger 調試器的 Running Document 面闆中選擇開啟的頁面檔案(隻讀),然後按F9 可以設定斷點調試。另外,其Command Window 面闆也是一個很有用的功能,它能在代碼斷點停止時,在其中輸入變量名并回車,便可看到此時變量的值;Command Window 面闆甚至可以接受簡單的JavaScript 指令。但Microsoft Script Debugger 調試器自身還存在一個bug 問題