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

简介:
上次的文章引起很多网友的讨论,我很高兴 emsmile.gif。其中提到了不少我原来并不十分清楚的东西,在此首先对他们表示感谢,接下来继续我的脚本调试环境。 

    我们简单的使用VS.NET打开一个包含脚本的html文件,我们发现我们是不能调试它的,虽然我们可以按F9来设置一个端点,但是这个断点却是形同虚设:(。这是因为我们的browser还没有进入可调试状态,使用上一篇文章中的在代码出错时选择Debugger的方法可以让browser进入调试状态,更普通的办法是把Browser的线程附加到调试器上去。下图就是调试Test.html的示例:
     JavaScriptIDE-8.gif
    附加线程到运行Test.html的Browser进程上,就是Processes List里的"IEXPLORE.EXE"。 

    这样一来再在脚本代码上按F9设置断点,断点的状态就会从下图的第一个unavailable状态变为下图的第二个available状态。
    JavaScriptIDE-9.gif

    这样一来我们的代码执行到断点处就会停止下来,这个好像废话哈 emembarrassed.gif。下面就是VS.NET 2005比VS.NET 2003强的地方登场了。我们如果用过VS.NET编译型程序的调试,都知道把鼠标放在变量名上,会很快有个Tooltip显示变量的值,或对象的类型和默认ToString()的值。这个功能在2003和2005里同样拥有,只是对于对象Object,在2003里就显示一个{...},如果要看{...}是啥?需要使用Add Watch或QuickWatch来看;在whidbey里面,这个察看功能有了很大的提升,我们将会看到一个可展开的节点来显示对象的值,我们可以在弹出窗口里浏览整个对象树,如下图:
    JavaScriptIDE-10.gif

    这个东西看起来是不是对调试非常方便呢?当然要是我们觉得弹出窗口太大遮挡了代码,而且这时我们又浏览了很多几级对象树了,屏幕上有一大堆展开的弹出窗口,我们不希望它们消失后,看清了代码又再把它们重新弄出来,怎么办呢?我们这时可以按Ctrl键或者鼠标中键(就是滚轮)让这些弹出窗口透明化~~~
    JavaScriptIDE-11.gif
    很酷很贴心的功能吧 emteeth.gif? 

    调试脚本中可能遇到的问题和对策(我们都默认IE的允许脚本调试的选项是开启的):

    1、本来我们打开IE的脚本调试后,程序出现脚本错误时就会弹出一个 MsgBox来提示是否调试,而不只是在IE左下角显示一个warning icon。但是有的时候经过长时间的调试,IE在脚本错误的时候,会不再弹出那个调试提示框,而是又变为在左下角显示错误图标。解决这个问题很简单,关掉browser重新打开来调试就好了。

    2、在脚本正常运行时,我们使用IE的View->Script Debugger的Open和Break at Next Statement选项会强行调出 脚本调试器选择窗口。但是如果我们在脚本中开启过 popup窗口,这两个调试选项会失效,就是点选后没有任何反应,这个可能是IE的bug,解决办法一:重新起动IE来调试;解决办法二:在希望调试的脚本语句前写一个错误的脚本调用,比如a.a;,这样程序运行在a.a语句时就会被break并弹出错误调试提示MsgBox,我们可以在这时选择调试器,进入调试状态后使用鼠标改变脚本执行顺序,跳过错误的语句就行了。

    关于脚本调试环境先写到这里,以后有更好的调试方法我会更新进来,欢迎大家提出更好的脚本调试意见和建议。


本文转自博客园鸟食轩的博客,原文链接:http://www.cnblogs.com/birdshome/,如需转载请自行联系原博主。 

目录
相关文章
|
3月前
|
JavaScript 前端开发 算法
Node.js中的process.nextTick与浏览器环境中的nextTick有何不同?
Node.js中的process.nextTick与浏览器环境中的nextTick有何不同?
|
5月前
|
JavaScript
Sublime Text3 直接运行js调试控制台
Sublime Text3 直接运行js调试控制台
|
5月前
|
缓存 JavaScript 应用服务中间件
Nginx+Tomcat代理环境下JS无法完全加载问题
Nginx+Tomcat代理环境下JS无法完全加载问题
|
1月前
|
JavaScript 前端开发 开发者
如果你想在钉钉环境中运行JavaScript脚本
【2月更文挑战第17天】如果你想在钉钉环境中运行JavaScript脚本
34 6
|
2月前
|
JavaScript 开发者
JS逆向 -- 本地调试
JS逆向 -- 本地调试
14 0
|
2月前
|
JavaScript 数据安全/隐私保护 开发者
JS逆向 -- 动态调试
JS逆向 -- 动态调试
21 1
|
6月前
|
前端开发 JavaScript UED
JavaScript 语法:语法约定与程序调试
JavaScript 语法 之 语法约定与程序调试
36 0
JavaScript 语法:语法约定与程序调试
|
3月前
|
JavaScript
Vue3 + Typescript + Node.js 搭建elementUI使用环境
Vue3 + Typescript + Node.js 搭建elementUI使用环境
39 0
|
4月前
|
前端开发 JavaScript
idea 对JavaScript进行debug调试
idea 对JavaScript进行debug调试
|
5月前
|
JavaScript 前端开发
JavaScript代码运行在了不同的上下文环境中
JavaScript代码运行在了不同的上下文环境中
16 1