开发者社区> 唐玄奘> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

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

简介:
+关注继续查看
真是不好意思,吃桃居然吃了一整天,下面继续说我的JavaScript调试环境。

    不管我们是怎么调试JavaScript,他总是在browser里运行,下面我都说在IE里的情况。目前我使用IE6.0 sp1,要启动脚本调试,需要在IE的Tools->Internet Options的Advanced里uncheck 'Disabled Script Debugging.',否则脚本出错时我只能在browser的status bar上看到一个错误提示图标。这样一来,当browser里出现脚本错误的时候,就会弹出一个这样的warning dialog:
   JavaScriptIDE-3.gif
    点击Yes后,将出现如下窗口: 
   JavaScriptIDE-2.gif
    这个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里设置过才会出来的): 
   JavaScriptIDE-4.gif
    "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给捕获了emcrook.gif,而得不到你想要的onclick的语句的中断,怎么办呢?! 那就是使用快捷键啦,比如你希望激活调试gmail里的mail list上的star(如下图)被点击时执行的脚本,你就把鼠标放在star上面,先按快捷键"Alt+V"、"u"、"b",再点击就行了。
   JavaScriptIDE-5.gif 

    到这里就可以说一下为什么现在还要用VS.NET 2003,而不只用VS.NET 2005来调试脚本了。比如上面的case,如果我在"Possible Debuggers"里选"New Instance of Visual Studio Whidbey",我们将会得到一个Msg Box:
   JavaScriptIDE-6.gif
    用我test team一个哥们的话来说:真是伤感哦!

    这时我们使用VS.NET 2003就可以顺利的跟踪了emsmile.gif
   JavaScriptIDE-7.gif
    确实郁闷吧?不过,我相信whidbey正式release的时候,这个问题因该是能解决的了,那时2003就可以完全下岗了。 
  

    当然让调试器whidbey跟踪<script src="..."></script>这种情况不是完全没有可能,这里有个小hack可以使用的。就是在调试前把会被引用到的script文件预先就打开在whidbey里,然后就能trace到该文件中去,这个办法显然只能解决本地调试,对于服务器端引用的意义不大,因为我们没法预先把服务器上的脚本文件打开.


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

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
原生 js 实现一个前端路由 router
原生 js 实现一个前端路由 router
128 0
PDF转图片,PDF转JPG/PNG,完全由JS实现
原理 使用pdf.js预览图片,pdf.js将pdf通过canvas将每一页渲染出来,然后我们通过canvas的toDataURL方法保存为jpg或png格式。pdf.js是Mozilla开源的一个js库,无需任何本地支持就可以在浏览器上显示pdf文档。
11210 0
CodePen上面21个纯 CSS3 /JS 实现的精美时钟
收集了21个酷炫的CSS / JS实现的时钟效果 预览 :https://clocks.oktools.net/0/ 源码 :https://codepen.io/amirrezajef/pen/NEoJKd 预览 :https://clocks.
858 0
JS实现手动和自动轮播效果
如何实现一个轮播图呢?
2575 0
JS实现分页功能
分页在网页上是一个很常见的功能,今天我们来实现一个新闻列表
4614 0
js+jquery实现树状目录
js+jquery实现简单的树状目录。html内容,css样式,js逻辑已经贴出。拿来即用。
963 0
【k线图】纯原生js实现k线图
原生js实现k线图,完全原生实现,不依赖第三方库。代码中已添加主要的行内注释,拿来即用。
1866 0
好程序员web前端培训分享js实现实战案例
好程序员web前端培训分享js实现实战案例,实际开发中有要求用户一些行为每天一次,次日开始重新回复功能,一般前端都是通过cookie来记住用户的操作,然后进行判断当日是否还有机会,这时候需要给存储的cookie值一个有效期,让次日自动失效,重新计数,代码如下: cookie = { /** * ...
1114 0
js实现移动端图片预览:手势缩放, 手势拖动,双击放大...
原文:js实现移动端图片预览:手势缩放, 手势拖动,双击放大... 前言本文将介绍如何通过js实现移动端图片预览,包括图片的 预览模式,手势缩放,手势拖动,双击放大等基本功能; 扫码查看示例效果: 代码地址http://pangyongsheng.github.io/imgPreview/ 一、功能介绍   图片预览主要有以下几个功能点组成: 监听图片点击事件,进入图片预览模式 自定义手势事件, (双指缩放,滑动,双击。
2511 0
+关注
641
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
低代码开发师(初级)实战教程
立即下载
阿里巴巴DevOps 最佳实践手册
立即下载
冬季实战营第三期:MySQL数据库进阶实战
立即下载