JavaScript 調試新武器

 

Venkman 是為 基于 Mozilla 的瀏覽器而提供的一個強大的 JavaScript 調試環境。本文將對Venkman 做一個簡單的介紹。

 

環境:Mozilla Firefox 1.0.4

JavaScript Dubugger 0.9.84 (此為Venkman 的代號)

 

第一步就是給 Firefox 安裝此插件。

 

點這里下載并安裝插件

 

安裝好后重啟一下 Firefox,就可在菜單工具 -> JavaScript Debugger 點擊來運行 Venkman

 

Venkman 界面如下:

 t_venkman.jpg

 

 

第二步,我們來寫一個有錯誤的代碼:

 

一個名為 Test.js JavaScript 腳本文件。

 

1function test(str) {
2    alert(Str);
3}

 

一個名為 Test.html 的網頁文件。

 

1<HTML>
2    <HEAD>
3    <Script Language="JavaScript" src="Test.js">Script>
4    HEAD>
5    
6    <BODY onload="test('Hello')">
7    BODY>
8HTML>

 

我們可以看到在 Test.js 中的方法 test(str) 中有個不易被發覺得錯誤”alert(Src)”

 

這個 Src ,我們并沒有聲明過,像這種誤打在平時的寫代碼過程中經常有這種問題。好,我們來看看 Venkman 是如何來捕捉這個 Bug 的。

 

你可以在 Venkman 中打開這個 Test.js 文件,也可以不用打開,因為在你打開了 Venkman 后,用 Firefox 執行任何帶有 JavaScript 的網頁,如果發生錯誤或者異常,Venkman 都會自動打開 這個 出錯的腳本文件。當然前提是你已經對 Venkman 進行過設置了(Debug -> Error Triger -> Stop For Errors Debug -> Throw Triger -> Sotp For Exceptions)。

 

第三步,用 Friefox 打開這個 Test.html 文件。你就會看到 Venkman 報告類似于如下的錯誤:

Stopped for error handler.
#0: function test(str=string:"Hello") in line 2
001: function test(str) {
002:     alert(Str);
Continuing from error handler.
Exception ``ReferenceError: Str is not defined'' thrown from function test(str=string:"Hello") in line 2.
[e] message = [string] "Str is not defined"
Stopped for thrown exception.
#0: function test(str=string:"Hello") in line 2
001: function test(str) {
002:     alert(Str);
Continuing from thrown exception.
Error ``ReferenceError: Str is not defined'' [xs] in file ``
file:///E:/Dorian/MyDocument/Test.js'', line 2, character 0.

 

其中可以很清除的看到 Str 是未聲明過的。

 

 

呵呵,這個 JavaScript 調試器的確很強大,在這里只不過做一個簡單的介紹罷了。