调试JavaScript/VB Script脚本程序(IE篇)

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)。因此你所需要做的就是找到执行网页的进程,这里我选择了ID3732iexplore.exe,因为那个是运行第三步网页的进程。最后点击“附加”(Attach)按钮使用脚本调试模式调试指定的IE进程。

 

注:细心的网友可能会看到,ID1692iexplore.exe的标题是“JavaScript调试”对应的就是我们执行网页的浏览器进程ID。其实在IE 8以前,选择执行网页的浏览器进程一般都是根据浏览器的标题做的,但是IE 8里面有一些改变,这个变化以后的文章里会讲到。

6.       附加上去以后,在网页的第7行(网页源码在第三步里面)设置一个断点就跟平常调试C#C++代码一样,设置好了以后,返回到IE进程里面,刷新网页。这个时候,Visual Studio应该会在网页的第7行中断IE的执行,你可以在“监视”(Watch)窗口里面查看脚本变量的值:

 


本文转自 donjuan 博客园博客,原文链接:http://www.cnblogs.com/killmyday/archive/2009/09/08/1562259.html   ,如需转载请自行联系原作者

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
JosunScript 脚本组件是一个采用ATL技术编写的高效稳定的脚本解析器。 能让你的CS模式程序(Vc、VB、Delphi、BC等)轻松解析VbScriptJavaScript脚本语言。 大大增强你的程序逻辑处理的灵活性和程序的交互能力,轻松实现从BS系统提供的页面接口获取数据信息。 最大程度实现程序功能的免编译(只要修改脚本文件即可),为你的用户提供“热插拔”式的升级。 尤其适合于各种流程化的程序设计(工作流函数的操作、呼叫中心系统IVR流程化的设计等等)。 本控件使用简便,开发者可根据本文档提供的例子根据自己的实际需求在例子上稍作修改即可。 主要的功能有: 1.加载脚本文件 2.获取脚本中的函数列表 3.获取脚本中的全局变量列表 4.按变量名称 设置、获取 脚本文件里的全局变量值 5.直接执行 文本、变量 中设置的脚本代码 6.能获取文本脚本执行结束后脚本里面的变量返回值,返回给调用者,实现脚本技术与其他语言技术的交互. 7.按列表返回的函数、过程名称执行相应的函数、过程。自定义入口参数,并返回执行结果给调用者,实现脚本技术与其他语言技术的交互. 8.实现远程、本地 xml文件的解析,免去在程序内部编写复杂的xml操作类,尤其是像VB这样的程序, 可以大大节约开发时间(本压缩包内的VB的例子就是最典型最简单的解析xml的例子)。 9.可以利用xmlhttp实现asp、jsp等页面的数据的存取解析,轻松访问第三方的数据 10.利用强大的VBScript脚本技术可以实现数据库接口,轻松将程序中的变量写入第三方的数据库中 如果您正在被流程设计中繁杂的逻辑判断、为第三方提供数据接口而烦恼,如果你想在您的产品中嵌入 功能强大、高度灵活的脚本功能增强您的产品的竞争力,JosunScript控件可以助您一臂之力。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值