调试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   ,如需转载请自行联系原作者

相关文章
|
2月前
|
Web App开发 JavaScript 前端开发
添加浮动按钮点击滚动到网页底部的纯JavaScript演示代码 IE9、11,Maxthon 1.6.7,Firefox30、31,360极速浏览器7.5.3.308下测试正常
添加浮动按钮点击滚动到网页底部的纯JavaScript演示代码 IE9、11,Maxthon 1.6.7,Firefox30、31,360极速浏览器7.5.3.308下测试正常
|
3月前
|
JavaScript Java Serverless
函数计算产品使用问题之如何使用Node.js编写程序
函数计算产品作为一种事件驱动的全托管计算服务,让用户能够专注于业务逻辑的编写,而无需关心底层服务器的管理与运维。你可以有效地利用函数计算产品来支撑各类应用场景,从简单的数据处理到复杂的业务逻辑,实现快速、高效、低成本的云上部署与运维。以下是一些关于使用函数计算产品的合集和要点,帮助你更好地理解和应用这一服务。
|
6天前
|
JSON 移动开发 JavaScript
在浏览器执行js脚本的两种方式
【10月更文挑战第20天】本文介绍了在浏览器中执行HTTP请求的两种方式:`fetch`和`XMLHttpRequest`。`fetch`支持GET和POST请求,返回Promise对象,可以方便地处理异步操作。`XMLHttpRequest`则通过回调函数处理请求结果,适用于需要兼容旧浏览器的场景。文中还提供了具体的代码示例。
在浏览器执行js脚本的两种方式
|
3天前
|
JavaScript 前端开发
利用事件循环提高 JavaScript 程序的性能
本文介绍了事件循环在JavaScript中的工作原理,以及如何通过合理利用事件循环来优化程序性能,包括异步操作、任务优先级和避免阻塞等技巧。
|
26天前
|
JavaScript 前端开发
如何使用Vue.js构建响应式Web应用程序
【10月更文挑战第9天】如何使用Vue.js构建响应式Web应用程序
|
2月前
|
JavaScript 前端开发
用JavaScript脚本将当地时间转换成其它时区
用JavaScript脚本将当地时间转换成其它时区
|
3月前
|
JavaScript 前端开发 开发者
Chrom devtools JS调试、性能优化与必备功能
Chrom devtools JS调试、性能优化与必备功能
|
2月前
|
Web App开发 JavaScript 前端开发
JavaScript 调试
JavaScript 调试
17 0
|
2月前
|
Web App开发 JavaScript 前端开发
JavaScript基础知识-使用Firefox进行代码的调试(Debug)
关于如何使用Firefox浏览器进行JavaScript代码调试的基础知识介绍。
80 0
|
3月前
|
JavaScript 开发者 UED
Vue.js 错误处理与调试:跟上技术潮流,摆脱开发困扰,成为代码大神不是梦!
【8月更文挑战第30天】在 Vue.js 开发中,错误处理与调试至关重要。本文将对比 Vue 的全局错误捕获机制 `Vue.config.errorHandler` 和组件内 `watch` 监听数据变化的方式,并介绍 Vue 开发者工具、控制台打印 (`console.log`) 以及代码断点 (`debugger`) 等调试方法。此外,还将探讨如何通过自定义错误页面提升用户体验。通过这些技巧的对比,帮助开发者灵活选择适合的策略,确保应用稳定性和开发效率。
51 0