可以用來調試JavaScript錯誤的解決方案

來源:互聯網
上載者:User

A 使用alert() 和document.write() 方法監視變數值
如果要中斷代碼的運行,監視變數的值,則使用alert() 方法;
如果需要查看的值很多,則使用document.write() 方法,避免反覆單擊“確定”按鈕;

B 使用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 事件後,一切都結束,所有的變數和資料都將被銷毀。

C 使用 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 塊中。

D 使用相關調試器
在IE 和Firefox 瀏覽器中,可以使用相關的調試器或外掛程式對JavaScript 進行調試。

● 在Firefox 瀏覽器中,可以使用其內建的“錯誤控制台”。操作步驟如下:
開啟Firefox 瀏覽器 → 在菜單條“工具”中 → 選擇“錯誤控制台”即可。
在沒有其他外掛程式的情況下,其內建的“錯誤控制台”是一個非常不錯的選擇。

另外,在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 問題。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.