JS的错误快速定位--JavaScript调试技巧
来源:互联网 发布:虚拟机网络 编辑:程序博客网 时间:2024/05/18 12:37
在网页编写中使用javascript是很常见的事情。但是js程序的调试是相当郁闷的。javascript是一种弱类型的脚本语言,很多错误是无法控制的。当javascript出现问题时,在IE浏览器中只会弹出一个简单的错误提示对话框,IE报的错误往往莫名其妙。
javascript的错误定位非常令人头疼,如何快速地定位JS错误呢?本文教你快速定位JS错误。
编写过JavaScript的开发人员都知道,js错误的是很难定位的,总是报一个缺少对象等错误,报出错误的页面和行数又不对,很难定位问题位置。在这里我将介绍一个简单有效的JS错误的方法:
使用onerror 事件,这是一种标准的在网页中捕获Javascript 错误的方法。 只要页面中出现脚本错误,就会产生onerror 事件。
如果需要利用onerror 事件,就必须创建一个相应处理错误的函数,。
window.onerror = function(sMessage,sUrl,sLine){
//出错处理
return true
}
window.onerror有三个参数:
1>sMessage是错误信息
2>sUrl是发生错误的页面的URL
3>sLine是发生错误的代码行(如果是当前页的错误,行数是准确的,如果不是当前页面的错误,则行数往往会上下错开一行。)
onerror的返回值决定了浏览器是否显示一个标准出错信息。如果你返回的是false,浏览器将在JavaScritp的console里显示标准出错信息。如果返回true, 浏览器则不会显示标准出错信息。
当然这些信息还不够充分,其实我们可以获取更多的提示信息,譬如错误的函数调用堆栈。
下面给出一段示例代码如下:
//错误信息显示函数
function reportError(sMessage,sUrl,sLine) {
var str = “”;
str += ” 错误信息:” + sMessage + “\n”;
str += ” 错误地址:” + sUrl + “\n”;
str += ” 错误行数:” + sLine + “\n”;
str += “<=========调用堆栈=========>\n”;
var func = window.onerror.caller;
var index = 0;
while(func!=null){
str += “第” + index + “个函数:” + func + “\n”;
str += “第” + index + “个函数:参数表:”
for(var i=0;i ????)
str += func.arguments[i] + “,”;
}
str += “\n===================\n”;
func = func.caller;
index++;
}
alert(str);
return true;
}
//浏览器是否显示标准的错误消息,取决于 onerror 的返回值。如果返回值为 false,则在控制台 (JavaScript console) 中显示错误消息。反之则不会。
window.onerror = reportError;
这样就拿到了函数的调用堆栈,以及每个函数的参数值,可以更好地定位JS错误。
注意:onerror事件必需在此网页中其它Javascript程序之前!
function reportError(sMessage, sUrl, sLine) {
var str = "";
str += " 错误信息:" + sMessage + "\n";
str += " 错误地址:" + sUrl + "\n";
str += " 错误行数:" + sLine + "\n";
str += "<=========调用堆栈=========>\n";
var func = window.onerror.caller;
var index = 0;
while (func != null) {
//str += "第" + index + "个函数:" + func + "\n";
//str += "第" + index + "个函数:参数表:"
//for(var i=0;i<func.arguments.count;i++)
//str += func.arguments[i] + ",";
//}
str += func;
str += "\n===================\n";
func = func.caller;
index++;
}
alert(str);
return true;
}
window.onerror = reportError;
- JS的错误快速定位--JavaScript调试技巧
- JavaScript调试技巧之:快速定位
- JavaScript调试技巧之:快速定位
- JavaScript调试技巧之:快速定位
- Xcode4 的错误调试定位技巧
- Xcode4 的错误调试定位技巧
- Xcode4 的错误调试定位技巧
- Xcode4 的错误调试定位技巧
- Xcode4 的错误调试定位技巧
- Xcode4 的错误调试定位技巧
- XCode4 的调试定位技巧
- 快速定位错误的方法
- javascript的调试技巧
- 调试javascript的技巧
- 调试JS的技巧
- js的调试技巧
- [转]如何快速定位一个函数的返回点 - 调试技巧
- javascript的错误调试
- web前端三大技术介绍之HTML
- WPF 作为弹出框的window设置DialogResult时抛异常问题
- JS 通过选择百度地图地址获取经纬度自动填充到文本框中的方法
- R语言-关键节点问题-方案四-K-shell分解法
- Python文件类型
- JS的错误快速定位--JavaScript调试技巧
- Chrome 网页顶部底部跳转快捷方式
- Java并发之彻底搞懂偏向锁升级为轻量级锁
- 使用 nginx 和 nginx-rtmp 搭建流媒体服务器
- js中的string.format
- make -j参数简介
- java独有垃圾收集器,释放内存问题
- 博弈入门—NIM&SG
- linux下安装redis