可以用来调试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之undefined篇(上)
Nov 22 Javascript
基于jquery的获取mouse坐标插件的实现代码
Apr 01 Javascript
基于jquery的图片幻灯展示源码
Jul 15 Javascript
javascript页面加载完执行事件代码
Feb 11 Javascript
常见JS验证脚本汇总
Dec 01 Javascript
jQuery tagsinput在h5邮件客户端中应用详解
Sep 26 Javascript
简单理解vue中el、template、replace元素
Oct 27 Javascript
解决vue-router在同一个路由下切换,取不到变化的路由参数问题
Sep 01 Javascript
详解vue-cli+element-ui树形表格(多级表格折腾小计)
Apr 17 Javascript
Vue Render函数创建DOM节点代码实例
Jul 08 Javascript
js实现跳一跳小游戏
Jul 31 Javascript
JS中锚点链接点击平滑滚动并自由调整到顶部位置
Feb 06 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作的文本留言本的例子(六)
2006/10/09 PHP
php函数的常用方法及注意之处小结
2011/07/10 PHP
PHP关联链接常用代码
2012/11/05 PHP
PHP数组及条件,循环语句学习
2012/11/11 PHP
百度工程师讲PHP函数的实现原理及性能分析(一)
2015/05/13 PHP
php二维码生成以及下载实现
2017/09/28 PHP
PHP的new static和new self的区别与使用
2019/11/27 PHP
javascript中的undefined 与 null 的区别  补充篇
2010/03/17 Javascript
原生Js与jquery的多组处理, 仅展开一个区块的折叠效果
2011/01/09 Javascript
Function.prototype.call.apply结合用法分析示例
2013/07/03 Javascript
javascript的回调函数应用示例
2014/02/20 Javascript
jQuery实现隔行背景色变色
2014/11/24 Javascript
JavaScript设计模式经典之命令模式
2016/02/24 Javascript
jquery replace方法去空格
2017/05/08 jQuery
浅谈vue.js导入css库(elementUi)的方法
2018/03/09 Javascript
跨域解决之JSONP和CORS的详细介绍
2018/11/21 Javascript
[02:20]2014DOTA2西雅图邀请赛 MVP外卡赛首胜采访
2014/07/09 DOTA
python中enumerate的用法实例解析
2014/08/18 Python
Python读取Json字典写入Excel表格的方法
2018/01/03 Python
Python logging管理不同级别log打印和存储实例
2018/01/19 Python
tensorflow实现打印ckpt模型保存下的变量名称及变量值
2020/01/04 Python
python 按钮点击关闭窗口的实现
2020/03/04 Python
Tensorflow中k.gradients()和tf.stop_gradient()用法说明
2020/06/10 Python
class类在python中获取金融数据的实例方法
2020/12/10 Python
CSS3用@font-face实现自定义英文字体
2013/09/23 HTML / CSS
施华洛世奇水晶荷兰官方网站:SWAROVSKI荷兰
2017/05/12 全球购物
外语专业毕业生自我评价分享
2013/10/05 职场文书
自我评价的写作规则
2014/01/06 职场文书
大学生毕业求职自荐书范文
2014/02/04 职场文书
"9.18"国耻日演讲稿范文
2014/09/14 职场文书
房屋租赁授权委托书范本
2014/09/20 职场文书
水知道答案观后感
2015/06/08 职场文书
毕业生的自我鉴定表范文
2019/05/16 职场文书
2019大学生预备党员转正思想汇报
2019/06/21 职场文书
html+css 实现简易导航栏功能
2021/04/07 HTML / CSS
tomcat的catalina.out日志按自定义时间格式进行分割的操作方法
2022/04/02 Servers