我所使用的JavaScript调试环境(2)

    真是不好意思,吃桃居然吃了一整天,下面继续说我的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 ...

posted on 2004-12-31 00:04 birdshome 阅读(25276) 评论(9) 编辑 收藏

评论

#1楼  回复 引用   

我所说的vs中的interdev并不是你所指的那个script debugger。在interdev中新建一个web项目,然后就可以像正常的调试一样调试js,直接在interdev中运行start,然后就会自动启动IE加载。你可以设置断点,单步追踪。
2004-12-31 08:11 | Ocean[未注册用户]

#2楼  回复 引用   

Cool!!!!!!!
Thankyou very much!
现在能够知道js在做什么了,太爽了!继续关注中!
2004-12-31 09:19 | Rbmxxx

#3楼  回复 引用   

1. Microsoft Script Editor不单单是VS.net 2003有,实际上装完officexp/2000/2003就有了。

2. 你可能没有用过MSE里的进程附着(attach process),这导致你有好多的操作是多余的。

3. M$官方只有两个脚本调试工具。其一是msd(microsoft script debugger),随IE和IIS以及windows的高版本提供,也可以免费下载。还有一个就是MSE(microsoft script editor),后者是最好用的。

4. 关于msd,可以看这个:
http://www.microsoft.com/china/technet/community/columns/scripts/sg0904.mspx

5. 关于mse,我没有看到任何好的介绍。尽管我用它已经超过3年了。
2004-12-31 09:41 | Aimingoo[未注册用户]

#4楼  回复 引用   

@Ocean
谢谢你的纠正,我对interdev确实不熟悉,很高新看到你的介绍

@Rbmxxx
希望你也把遇到的问题和解决方法拿来分享

@Aimingoo
嗯,Microsoft Script Editor到底是怎么被装到系统里的,我还真的没有搞清楚,不过它不影响我们的调试。你可能觉得有的步骤多余,那都是我用来解决极端情况而使用的,后面还会有普通的调试说明,当然重点可能还是介绍一些怪异的调试方法。
2004-12-31 10:33 | birdshome

#5楼  回复 引用   

asp时代,基本上都是用interdev来开发的,尤其是写脚本,真的有点爽!

.net就没用过了,看楼主的介绍,确实不错啊!
2006-04-17 10:01 | 小六子[未注册用户]

#6楼  回复 引用 查看   

我的IE在空白窗口下,可以显示察看->脚本调试程序菜单,而打开任何一个网页后,这个菜单就消失了。Ie高级选项的两个钩已经去掉了,怎么回事呢?
2006-12-31 15:20 | 吴波      

#7楼  回复 引用   

Microsoft Script Editor是随着office装到系统里的,可以在office的安装目录下找到exe。

请问你的HTMLPad有破解么?
2007-07-30 17:24 | bsc2xp[未注册用户]

#8楼  回复 引用   

javascript debug tool
开发背景:
在javascript开发过程中,如果总是使用alert的方式调试程序,在某些简单的程序中是可行的.但是在通常的项目中,通常都很复杂,这种方式已经很难满足,企业级开发的需要。
鉴于以上初衷,本人自己动手编写了这个javascript调试工具,主要有以下特点:
1.完全的可插入式思想,对目标程序没有任何负作用。
2.使用方法极其简单,只需要引入一行JS代码。
实践证明,使用该工具后,项目中调试JS程序变的极其便利,
故推而广之,希望使用的朋友能提一些改进的意见。
出于一些版权考虑该工具的源代码本人暂且没有公布,也对发布的版本做了一些简单的处理。

下载地址:http://jzshmyt.spaces.live.com/
2007-10-31 21:30 | jzshmyt[未注册用户]

导航

公告

  原创技术文章和心得,转载必须注明来源"博客园"!
  贴子以"现状"提供,且没有任何担保,同时也没有授予任何权利。
昵称:birdshome
园龄:7年10个月
荣誉:推荐博客
粉丝:73
关注:3

搜索

 

常用链接

我的标签

随笔分类(337)

文章分类(147)

相册

Ex-Colleagues

常用链接

兄弟情深

积分与排名

  • 积分 - 3145044
  • 排名 - 6

最新评论

阅读排行榜

推荐排行榜