天天看點

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

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 問題

繼續閱讀