XuGang

记录一个程序员的成长

 

如何在VS2005 中调试JavaScript 脚本

JavaScript是一种弱类型的编程语言,与C#等语言不同,在JavaScript中,变量的类型是在运行时解析的,而且可以在运行时变换变量的类型。这为它带来了前所未有的灵活性,可以实现很多绚丽的功能,但是对于IDE来说却很头疼,由于只能在运行时获得关于变量类型的信息,因此实现智能提示,调试等功能非常困难。不过令人兴奋的是,微软已经在VS2005中已经集成了JavaScript的调试功能,并且在VS2008中集成了智能提示功能。

 

问题1:无法启用调试

VWD2005中启动调试时如果弹出一个如下内容为无法附加。绑定句柄无效。对话框, 那么很可能是由于你禁用了Terminal Service服务。启用Terminal Service服务即可。




问题2:如何在VS2005中调试JavaScript

JavaScript是一种弱类型语言,目前的各种IDE对它的调试支持都比较弱,但是在VS2005中我们可以轻松的对它进行调试,而且在Express版本中也集成了此项功能(可惜的是在Visual Web Developer 2008 Express中,没有包含脚本调试功能。)。但是在使用它之前我们需要对浏览器进行设置。

 

1. 在IE 6中,选择工具>Internet选项,在弹出的Internet选项对话框中选择高级选项卡,将禁用脚本调试(Internet Explorer)和禁用脚本调试(其它)两个选项的勾都去掉,即确保没有选中它们。然后重新启动IE


 

2. 在你希望的地方设置断点,按F5键直接启动调试。当程序运行到断点处时,自动停在断点处。


 

注意此种方法只能调试外部的脚本文件,对于内置在页面文件的脚本,可以在想中断的脚本处添加debugger;语句即可,如下图所示。




问题3如果安装了微软的Microsoft Script Debugger,会改变VS2005的默认设置,导致内置的JavaScript调试功能失效。

解决方法:选择Tools>Options,在弹出的Options对话框中,将Debugging>Just-In-Time下的Script选项选中即可。(默认情况下,没有Debugging条目。勾选对话框坐下角的Show all settings即可。)


 

后记:

在我使用VS2005内置的脚本调试功能一段时间之后,突然发现它失效了,症状是Script Explorer总是为空,没有任何脚本文件。经过一段时间的摸索之后(使用VS2005的导入和导出设置功能将设置复位,修复VS2005,就剩下重装VS2005没有试过了),最终只好利用Debug>Attach to process…功能。方法如下:

首先在IE中打开你要调试的网页,例如:http://localhost:2847/WebSamples/Default.aspx

然后在VS2005中选择Debug>Attach to process…,打开Attach to process对话框,选择IEXPLORE.EXE进程,单击Attach。然后在脚本文件中设置合适的断点,在IE中进行操作以触发对应的函数,会自动跳转到VS2005的断点处。

 

补记:在asp.net中一步一步调试JavaScript,在这篇文章里我使用了IIS和Visual Studio 2005。

配置:

第一步:在Visual Studio 2005中打开一个已经存在的asp.net应用程序,其中要有一些JavaScript。

第二步:当我们在微软的Visual Studio中创建了一个Web项目,那么一个名为Web.config的文件默认也被创建在了该Web项目中。

我们检查一下它的设置:把debug的属性该为true。

第三步:打开Internet 信息服务(IIS)管理器。

开始->管理工具->Internet 信息服务(IIS)管理器->网站->默认网站->右键单击你想调试的Web项目->属性->虚拟目录选项卡->配 置->在新打开的windows窗口中选择调试选项卡->把“启用 ASP 服务器端脚本调试”和“启用 ASP 客户端脚本调试”两个复选框选中。

第四步:打开IE,单击菜单栏的“工具”->Internet 选项->高级选项卡->取消“禁用脚本调试(Internet Explorer)”和“禁用脚本调试(其他)”两个复选框的选中状态。

第五步:现在,在Visual Studio IDE打开你的Web项目。

注意:JavaScript一定要放到一个单独的.js文件里,而不能直接在.aspx页里写JavaScript。然后像对待.cs或.vb文件一样,在.js文件里给某行添加断点即可。

第六步:运行你的Web项目,程序将会在运行到你设置的断点处停止。


posted on 2011-07-17 00:00  钢钢  阅读(3913)  评论(4编辑  收藏  举报

导航