調試JavaScript錯誤的四種解決方案

作者: 鋼鋼  來源: 博客園  發布時間: 2010-08-06 09:51  閱讀: 1382 次  推薦: 0   原文鏈接   [收藏]  

1、使用alert()和document.write()方法監視變量值

如果要中斷代碼的運行,監視變量的值,則使用alert() 方法;

如果需要查看的值很多,則使用document.write() 方法,避免反復單擊“確定”按鈕;

2、使用window.onerror事件

當頁面出現異常時,onerror 事件會在window 對象上觸發。它能在一定程度上告訴開發者相關的錯誤信息。

示例:

 
<script type="text/javascript">
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 問題。

 

0
0
 
 
 

文章列表

arrow
arrow
    全站熱搜
    創作者介紹
    創作者 大師兄 的頭像
    大師兄

    IT工程師數位筆記本

    大師兄 發表在 痞客邦 留言(0) 人氣()