可以用来调试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 面向对象 继承
May 13 Javascript
JQuery触发事件例如click
Sep 11 Javascript
jQuery中end()方法用法实例
Jan 08 Javascript
Lab.js初次使用笔记
Feb 28 Javascript
JS和jQuery使用submit方法无法提交表单的原因分析及解决办法
May 17 Javascript
confirm确认对话框的实现方法总结
Jun 17 Javascript
JS中实现函数return多个返回值的实例
Feb 21 Javascript
关于在vue 中使用百度ueEditor编辑器的方法实例代码
Sep 14 Javascript
使用vue-router在Vue页面之间传递数据的方法
Jul 15 Javascript
VUE实现强制渲染,强制更新
Oct 29 Javascript
JavaScript中的执行环境和作用域链
Sep 04 Javascript
JavaScript实现滑块验证解锁
Jan 07 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 addslashes及其他清除空格的方法是不安全的
2012/01/25 PHP
Eclipse中php插件安装及Xdebug配置的使用详解
2013/04/25 PHP
curl和libcurl的区别简介
2015/07/01 PHP
PHP中的静态变量及static静态变量使用详解
2015/11/05 PHP
php微信开发之批量生成带参数的二维码
2016/06/26 PHP
用jQuery中的ajax分页实现代码
2011/09/20 Javascript
js模仿hover的具体实现代码
2013/12/30 Javascript
JQuery实现左右滚动菜单特效
2015/09/28 Javascript
第八篇Bootstrap下拉菜单实例代码
2016/06/21 Javascript
又一款js时钟!transform实现时钟效果
2016/08/15 Javascript
js图片轮播插件的封装
2017/07/21 Javascript
你可能不知道的JSON.stringify()详解
2017/08/17 Javascript
解决Vue不能检测数组或对象变动的问题
2018/02/24 Javascript
发布Angular应用至生产环境的方法
2018/12/10 Javascript
python海龟绘图实例教程
2014/07/24 Python
python中assert用法实例分析
2015/04/30 Python
Python实现的使用telnet登陆聊天室实例
2015/06/17 Python
Python中的字典与成员运算符初步探究
2015/10/13 Python
Python编程中字符串和列表的基本知识讲解
2015/10/14 Python
python在不同层级目录import模块的方法
2016/01/31 Python
Python原始字符串与Unicode字符串操作符用法实例分析
2017/07/22 Python
CSS3实现莲花绽放的动画效果
2020/11/06 HTML / CSS
阿迪达斯意大利在线商店:adidas意大利
2016/09/19 全球购物
加拿大最大的钻石商店:Peoples Jewellers
2018/01/01 全球购物
Club Monaco加拿大官网:设计师男女服装
2019/09/29 全球购物
Piercing Pagoda官网:耳环、戒指、项链、手链等
2020/09/28 全球购物
JMS中Topic和Queue有什么区别
2013/05/15 面试题
简单介绍Object类的功能、常用方法
2013/10/02 面试题
中层干部竞争上岗演讲稿
2014/01/13 职场文书
低碳生活倡议书
2014/04/14 职场文书
西湖英语导游词
2015/02/06 职场文书
校友回访母校寄语
2015/02/26 职场文书
班主任培训研修日志
2015/11/13 职场文书
写自招自荐信的绝招!
2019/04/19 职场文书
Python基于百度AI实现抓取表情包
2021/06/27 Python
Go调用Rust方法及外部函数接口前置
2022/06/14 Golang