我所使用的JavaScript調試環境(2)

來源:互聯網
上載者:User

    真是不好意思,吃桃居然吃了一整天,下面繼續說我的JavaScript調試環境。

    不管我們是怎麼調試JavaScript,他總是在browser裡運行,下面我都說在IE裡的情況。目前我使用IE6.0 sp1,要啟動指令碼調試,需要在IE的Tools->Internet Options的Advanced裡uncheck 'Disabled Script Debugging.',否則指令碼出錯時我只能在browser的status bar上看到一個錯誤提示表徵圖。這樣一來,當browser裡出現指令碼錯誤的時候,就會彈出一個這樣的warning dialog:
   
    點擊Yes後,將出現如下視窗: 
   
    這個debugger dialog裡列出的‘Possible Debuggers’就是我機器裡已安裝的Script調試器。其中"Microsoft Script Editor"就是上次說的Visual Studio裡帶的調試器了,... 2003、... 2005就不用說了,就是VS.NET了。這種情況的調試是最普通的調試,可以直接把斷點定位到指令碼錯誤的行上,然後通過watch視窗看local變數的值來確定錯誤的所在。

    那麼指令碼要是不明顯的出語法錯誤怎麼設斷點呢?這裡有兩個辦法,一個是使用IE View菜單裡的Script Debugger子功能表(這個菜單是在IE的Tools->Internet Options->Advanced裡設定過才會出來的): 
   
    "Open"就和上面說到到的點"Yes"後出來的視窗一樣,點"Break at Next Statement"比較的有意思,它將會在你的Browser執行下一條指令碼的時候讓你選擇調試器來調試,這一點十分便於我們分析別人的擁有複雜JavaScript的頁面。比如gmail裡面的管理頁面,如果我想看看點了star之後它是怎麼處理的,就可以使用這個"Break at Next Statement",讓它break在next statement上。不過使用這個feature有個技巧:有的頁面由於捕獲了onmousemove事件,如果你通過滑鼠去點擊菜單裡的"Break at Next Statement"條目,你的next statement總是被onmousemove給捕獲了,而得不到你想要的onclick的語句的中斷,怎麼辦呢?! 那就是使用快速鍵啦,比如你希望啟用調試gmail裡的mail list上的star(如)被點擊時執行的指令碼,你就把滑鼠放在star上面,先按快速鍵"Alt+V"、"u"、"b",再點擊就行了。
    

    到這裡就可以說一下為什麼現在還要用VS.NET 2003,而不只用VS.NET 2005來調試指令碼了。比如上面的case,如果我在"Possible Debuggers"裡選"New Instance of Visual Studio Whidbey",我們將會得到一個Msg Box:
   
    用我test team一個哥們的話來說:真是傷感哦!

    這時我們使用VS.NET 2003就可以順利的跟蹤了。
   
    確實鬱悶吧?不過,我相信whidbey正式release的時候,這個問題因該是能解決的了,那時2003就可以完全下崗了。 
  
    當然讓調試器whidbey跟蹤<script src="..."></script>這種情況不是完全沒有可能,這裡有個小hack可以使用的。就是在調試前把會被引用到的script檔案預先就開啟在whidbey裡,然後就能trace到該檔案中去,這個辦法顯然只能解決本地調試,對於伺服器端引用的意義不大,因為我們沒法預先把伺服器上的指令檔開啟:(。 

    to be continued ...

相關文章

聯繫我們

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