調試JavaScript/VB Script指令碼程式(IE篇)

來源:互聯網
上載者:User

JavaScript/VB Script指令碼程式一般有兩種執行方式,一種是嵌入在宿主程式裡面執行,比如在IE瀏覽器裡面執行;另外一種,在資源管理員裡面雙擊執行(雖然還是通過另外一個程式解釋執行,但是給人的感覺畢竟是直接運行)。

這兩種方式,都可以使用Visual Studio來進行調試,先看大家用得比較頻繁的網頁指令碼程式的調試:

1.       要調試網頁裡面的指令碼程式,調試器需要宿主程式—這裡也就是IE的支援,實際上所有的指令碼程式解譯器都實現了一個COM的調試介面。調試器通過查詢解譯器的這個介面,可以設定斷點,查詢變數以及捕捉異常,當然,查詢到這個介面,需要宿主程式同意……至於如何?這個介面,我們會在以後的文章裡面講到。

2.       預設情況下,IE是將指令碼調試支援功能關閉的,因此你需要顯示地開啟它。開啟IE,點擊“工具”—“Internet 選項”,在“Internet 選項”裡面選擇進階頁簽,在“設定”列表裡面,找到“禁用指令碼調試(Internet Explorer)”選項,它預設是勾選上的—將它勾掉。

3.       使用IE開啟一個新的網頁,無論是一個遠端,或者本地的(從本地硬碟開啟)網頁。例如下面一個網頁,另存新檔test.html:

1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

 

2. <html xmlns="http://www.w3.org/1999/xhtml">

3. <head>

4. <title>JavaScript調試</title>

5. <script language=javascript>

6. function onload() {

7. var test = unescape("http://www.google.com");

8. alert(test);

9. }

10. </script>

11. </head>

12. <body onload="onload()">

 

13. </body>

14. </html>

 

4.       啟動Visual Studio,點擊VS菜單裡面的“工具”—“附加到進程”菜單,開啟“附加到進程”視窗裡面。Visual Studio其實支援很多種偵錯模式,調試C++(native)程式,調試.NET(託管)程式,調試指令碼程式,調試Silverlight程式以及調試SQL預存程序。預設情況下,Visual Studio會根據附加的進程類型來選擇最合適的偵錯模式,但是有的時候,你需要手工設定一下。例如Internet Explorer這種程式,IE可以同時運行多種子程式,IE本身和ActiveX控制項是C++/C寫成的,IE可以運行Winform/WPF程式,IE可以運行Silverlight程式,當然,IE最多的還是運行JavaScript/VB Script指令碼程式。Visual Studio在附加到Internet Explorer進程的時候,總是會被IE弄糊塗,所以我們需要手工告知Visual Studio我們希望採用什麼偵錯模式。

 

在“附加到進程”視窗裡面,在“附加到…”(英文是Attach To…)文字框旁邊點擊“選擇”按鈕,在彈出的“選擇代碼類型”視窗裡面,勾選“調試下列類型”,並選擇“指令碼”。如所示:

 

5.       接著你需要在“附加到進程”視窗裡面選擇要附加的進程,在“可用進程”(Available Processes)列表裡面,有一個“類型”(Type)列,裡面列舉了對應進程支援的偵錯模式,比如你可以看到在裡,好幾個iexplore.exe支援指令碼和C++偵錯模式(Script, x86)。因此你所需要做的就是找到執行網頁的進程,這裡我選擇了ID為3732的iexplore.exe,因為那個是運行第三步網頁的進程。最後點擊“附加”(Attach)按鈕使用指令碼偵錯模式調試指定的IE進程。

 

註:細心的網友可能會看到,ID為1692的iexplore.exe的標題是“JavaScript調試”—對應的就是我們執行網頁的瀏覽器進程ID。其實在IE 8以前,選擇執行網頁的瀏覽器進程一般都是根據瀏覽器的標題做的,但是IE 8裡面有一些改變,這個變化以後的文章裡會講到。

6.       附加上去以後,在網頁的第7行(網頁源碼在第三步裡面)設定一個斷點—就跟平常調試C#和C++代碼一樣,設定好了以後,返回到IE進程裡面,重新整理網頁。這個時候,Visual Studio應該會在網頁的第7行中斷IE的執行,你可以在“監視”(Watch)視窗裡面查看指令碼變數的值:

 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.