可以用来调试JavaScript错误的解决方案


Posted in Javascript onAugust 07, 2010

A 使用alert() 和document.write() 方法监视变量值
如果要中断代码的运行,监视变量的值,则使用alert() 方法;
如果需要查看的值很多,则使用document.write() 方法,避免反复单击“确定”按钮;

B 使用window.onerror 事件
当页面出现异常时,onerror 事件会在window 对象上触发。它能在一定程度上告诉开发者相关的错误信息。
示例:

<script type="text/javascript"> 
function myerror(_message,_url,_line) 
{ 
alert("错误信息:" + _message 
+"\n错误的URI:" + _url 
+"\n错误的行数:" + _line 
); 
return true; //屏蔽系统的事件 
} 
//绑定错误事件 
window.onerror = myerror; 
//触发错误示例: 
window,onload = test; 
</script>

注意:在IE 中,触发error 事件后,正常的代码会继续运行,所有的变量和数据都会保存下来,在其onerror 事件处理方法中可以正常访问到;而在Firefox 中,触发error 事件后,一切都结束,所有的变量和数据都将被销毁。

C 使用 try...catch 语句找错误
示例:

<script type="text/javascript"> 
try 
{ 
alert(触发异常); 
} 
catch (_ex) //可以省略“_ex”参数 
{ 
var err = "错误信息"; 
for (var i in _ex) 
{ 
err += "\n参数名:" + i 
+ "\t参数值:" + _ex[i]; 
} 
alert(err); //打印错误 
} 
finally //finally 可以被省略... 
{ 
alert("finally 总是会运行"); 
} 
</script>

注意:try...catch 并不能很好的处理JavaScript 的语法错误。
示例:
<script type="text/javascript"> 
try 
{ 
alert("触发语法错误")); //多了半边“)” 
} 
catch (_ex) //可以省略_ex参数 
{ 
var err = "错误信息"; 
for (var i in _ex) 
{ 
err += "\n参数名:" + i 
+ "\t参数值:" + _ex[i]; 
} 
alert(err); //打印错误 
} 
</script>

该示例并没有进入catch 块中。

D 使用相关调试器
在IE 和Firefox 浏览器中,可以使用相关的调试器或插件对JavaScript 进行调试。

● 在Firefox 浏览器中,可以使用其自带的“错误控制台”。操作步骤如下:
打开Firefox 浏览器 → 在菜单条“工具”中 → 选择“错误控制台”即可。
在没有其他插件的情况下,其自带的“错误控制台”是一个非常不错的选择。

另外,在Firefox 浏览器中,还有一些很不错的调试器,如:Venkman、Firebug 等。
Venkman 调试器安装后,可以在Firefox 浏览器 → 在菜单条“工具”中 → 选择“JavaScript Debugger ”命令启用;
Firebug 调试器安装后,可以在Firefox 浏览器 → 在菜单条“工具”中 → 选择“Firebug”→ 选择“打开 Firebug”即可;

● 在IE 浏览器中,可以使用 Microsoft Script Debugger 调试器
Microsoft Script Debugger 是微软随IE 4 一同发布的一个IE插件,可以从微软的官方网站上免费下载。
下载安装以后,必须将IE 浏览器的调试选项打开才能使用。操作步骤如下:
1> 打开IE 浏览器 → 选择菜单栏的“工具”→ “Internet 选项”命令 → “高级”选项卡 → 将“禁用脚本调试(Internet Explorer )”复选框中的勾去掉即可。
2> 当IE 浏览器正在浏览页面时,运行Microsoft Script Debugger 调试器工具即可进行调试。
在Microsoft Script Debugger 调试器的 Running Document 面板中选择开启的页面文件(只读),然后按F9 可以设置断点调试。另外,其Command Window 面板也是一个很有用的功能,它能在代码断点停止时,在其中输入变量名并回车,便可看到此时变量的值;Command Window 面板甚至可以接受简单的JavaScript 命令。但Microsoft Script Debugger 调试器自身还存在一个bug 问题。

Javascript 相关文章推荐
JavaScript 捕获窗口关闭事件
Jul 26 Javascript
在jQuery1.5中使用deferred对象 着放大镜看Promise
Mar 12 Javascript
JavaScript实现文字与图片拖拽效果的方法
Feb 16 Javascript
jQuery控制cookie过期时间的方法
Apr 07 Javascript
AngularJS入门教程之Helloworld示例
Dec 25 Javascript
JavaScript实现获取用户单击body中所有A标签内容的方法
Jun 05 Javascript
微信小程序媒体组件详解(视频,音乐,图片)
Sep 19 Javascript
jQuery EasyUI Layout实现tabs标签的实例
Sep 26 jQuery
vue.js配合$.post从后台获取数据简单demo分享
Aug 11 Javascript
iView框架问题整理小结
Oct 16 Javascript
JS数组及对象遍历方法代码汇总
Jun 16 Javascript
详解vue 组件的实现原理
Nov 12 Javascript
DLL+ ActiveX控件+WEB页面调用例子
Aug 07 #Javascript
JavaScript中继承的一些示例方法与属性参考
Aug 07 #Javascript
javascript 防止刷新,后退,关闭
Aug 07 #Javascript
纯CSS打造的导航菜单(附jquery版)
Aug 07 #Javascript
基于jquery的商品展示放大镜
Aug 07 #Javascript
jquery autocomplete自动完成插件的的使用方法
Aug 07 #Javascript
jQuery的实现原理的模拟代码 -5 Ajax
Aug 07 #Javascript
You might like
PHP文件注释标记及规范小结
2012/04/01 PHP
php实现当前页面点击下载文件的简单方法
2016/09/22 PHP
thinkphp修改配置进入默认首页的方法
2017/02/07 PHP
YII2框架中excel表格导出的方法详解
2017/07/21 PHP
PHP CURL与java http使用方法详解
2018/01/26 PHP
Laravel中错误与异常处理的用法示例
2018/09/16 PHP
php多进程模拟并发事务产生的问题小结
2018/12/07 PHP
javascript cookies 设置、读取、删除实例代码
2010/04/12 Javascript
JavaScript在IE和Firefox(火狐)的不兼容问题解决方法小结
2010/04/13 Javascript
IE图片缓存document.execCommand(&quot;BackgroundImageCache&quot;,false,true)
2011/03/01 Javascript
javascript 使用 NodeList需要注意的问题
2013/03/04 Javascript
使用js 设置url参数
2013/07/08 Javascript
JS实现仿新浪微博发布内容为空时提示功能代码
2015/08/19 Javascript
JS结合bootstrap实现基本的增删改查功能
2016/07/22 Javascript
关于JavaScript中事件绑定的方法总结
2016/10/26 Javascript
jQuery插件HighCharts绘制2D柱状图、折线图的组合双轴图效果示例【附demo源码下载】
2017/03/09 Javascript
VUE多层路由嵌套实现代码
2017/05/15 Javascript
js实现城市级联菜单的2种方法
2017/06/23 Javascript
详解微信图片防盗链“此图片来自微信公众平台 未经允许不得引用”的解决方案
2019/04/04 Javascript
NodeJs crypto加密制作token的实现代码
2019/11/15 NodeJs
Vue+Openlayers自定义轨迹动画
2020/09/24 Javascript
token 机制和实现方式
2020/12/15 Javascript
[00:58]PWL开团时刻DAY5——十人开雾0换5
2020/11/04 DOTA
web.py获取上传文件名的正确方法
2014/08/26 Python
Python实现二叉堆
2016/02/03 Python
Python3.5 Pandas模块缺失值处理和层次索引实例详解
2019/04/23 Python
简单了解django索引的相关知识
2019/07/17 Python
Django在admin后台集成TinyMCE富文本编辑器的例子
2019/08/09 Python
幼儿运动会邀请函
2014/01/17 职场文书
招聘与培训专员岗位职责
2014/01/30 职场文书
《月光启蒙》教学反思
2014/03/01 职场文书
挂牌仪式策划方案
2014/05/18 职场文书
欢度春节标语
2014/07/01 职场文书
申报材料格式
2014/12/30 职场文书
功夫熊猫观后感
2015/06/10 职场文书
2019年共青团工作条例最新版
2019/11/12 职场文书