Javascript 调试利器 Firebug使用详解六


Posted in Javascript onJuly 05, 2009

我们测试一下把刚才的4个输出作为一个分组输出,修改代码为:

console.group('开始分组:'); 
console.debug('This is console.debug!'); 
console.info('This is console.info!'); 
console.warn('This is console.warn!'); 
console.error('This is console.error!'); 
console.groupEnd();

刷新页面看看结果(图11-5)。在console.group中,我们还可以加入一个组标题“开始分组:”。如果需要,我们还可以通过嵌套的方式,在组内再分组。
Javascript 调试利器 Firebug使用详解六
图11-5
有时候,我们需要写一个for循环列出一个对象的所有属性或者某个HTML Element下的所有节点,有了firebug后,我们不需要再写这个for循环了,我们只需要使用console.dir(object)或console.dirxml(element)就可以了。
在测试页中加入代码测试一下:
console.dir(document.getElementById('div1')); 
console.dirxml(document.getElementById('div1'));

结果请看图11-6和图11-7。
Javascript 调试利器 Firebug使用详解六 
图11-6
Javascript 调试利器 Firebug使用详解六
图11-7
是否想知道代码的运行速度?很简单,使用console.time和console.timeEnd就可以。
修改一下test函数的代码,测试一下运行1000次循环需要多少时间:
function test(){ 
console.time('test'); 
for(var i=0;i<1000;i++){ 
document.getElementById('div2').innerHTML=i; 
//console.log('当前的参数是:%d',i); 
} 
console.timeEnd('test'); 
}

刷新页面,单击“方块二”,看看结果(图11-8)。在这里要注意的是console.time和console.timeEnd里的参数要一致才会有正确的输出,而该参数就是信息的标题。
Javascript 调试利器 Firebug使用详解六
图11-8
是否想知道某个函数是从哪里调用的?console..trace可帮助我们进行追踪。在test函数的结尾加入:
console.trace();
刷新页面,单击“方块二”,看看结果(图11-9)。结果显示是在坐标(97,187)的鼠标单击事件执行了test函数,而调用的脚本是在simple.html文件里的第1行。因为是在HTML里面的事件调用了test函数,所以显示的行号是第1行。如果是脚本,则会显示调用脚本的行号,通过单击可以直接去到调用行。
Javascript 调试利器 Firebug使用详解六
图11-9
如果想在脚本某个位置设置断点,可以在脚本中输入“debugger”作为一行。当脚本执行到这一行时会停止执行等待用户操作,这时候可以通过切换到“Script”标签对脚本进行调试。
Firebug还有其它的一些调试函数,这里就不一一做介绍,有兴趣可以自己测试。表4是所有函数的列表:
函数 说明
console.log(object[, object, ...]) 向控制台输出一个信息。可以输入多个参数,输出将已空格分隔各参数输出。 第一参数可以包含格式化文本,例如: console.log(‘这里有%d个%s',count,apple); 字符串格式: %s :字符串。 %d, %i:数字。 %f: 浮点数。 %o -超链接对象。
console.debug(object[, object, ...]) 向控制台输出一个信息,信息包含一个超链接链接到输出位置。
console.info(object[, object, ...]) 向控制台输出一个带信息图标和背景颜色的信息,信息包含一个超链接链接到输出位置。
console.warn(object[, object, ...]) 向控制台输出一个带警告图标和背景颜色的信息,信息包含一个超链接链接到输出位置。
console.error(object[, object, ...]) 向控制台输出一个带错误图标和背景颜色的信息,信息包含一个超链接链接到输出位置。
console.assert(expression[, object, ...]) 测试一个表示是否为true,如果为false,提交一个例外信息到控制台。
console.dir(object) 列出对象的所有属性。
console.dirxml(node) 列出HTML或XML Element的XML源树。
console.trace() 输出堆栈的调用入口。
console.group(object[, object, ...]) 将信息分组再输出到控制台。通过console.groupEnd()结束分组。
console.groupEnd() 结束分组输出。
console.time(name) 创建一个名称为name的计时器,计算代码的执行时间,调用console.timeEnd(name)停止计时器并输出执行时间。
console.timeEnd(name) 停止名称为name的计时器并输出执行时间。
console.profile([title]) 开始对脚本进行性能测试,title为测试标题。
console.profileEnd() 结束性能测试。
console.count([title]) 计算代码的执行次数。titile作为输出标题。
表4

12、 在IE中使用Firebug
Firebug是Firefox的一个扩展,但是我习惯在IE中调试我的页面怎么办?如果在页面脚本中加入console.log()将调试信息写到Friebug,在IE中肯定是提示错误的,怎么办?不用担心,Frirebug提供了Frirbug Lite脚本,可以插入页面中模仿Firebug控制台。
我们可以从一下地址下载firebug lite:
http://www.getfirebug.com/releases/firebuglite1.0-b1.zip
然后在页面中加入:
<script language="javascript" type="text/javascript" src="/路径/firebug.js"></script>
如果你不想在IE中模仿Friebug控制台,只是不希望console.log()脚本出现错误信息,那么在页面中加入一下语句:
<script language="javascript" type="text/javascript" src="/路径/firebugx.js"></script>
如果你不想安装Firebug Lite,只是想避免脚本错误,那么可以在脚本中加入以下语句:
if (!window.console || !console.firebug)
{
var names = ["log", "debug", "info", "warn", "error", "assert", "dir", "dirxml",
"group", "groupEnd", "time", "timeEnd", "count", "trace", "profile", "profileEnd"];
window.console = {};
for (var i = 0; i < names.length; ++i)
window.console[names[i]] = function() {}
}
我们将firebug.js加入到测试页面中,然后打开IE,加载页面。页面加载完成后,我们按下F12键就可以打开控制台了。每次页面刷新后,你都要按F12键打开控制台,是不是很烦?如果不想那么,就在html标签中加入“debug='true'”,例如:
<html debug="true">
在Friebug Lite中也有命令行,但是功能没那么强。
Javascript 相关文章推荐
表单提交时自动复制内容到剪贴板的js代码
Mar 16 Javascript
3Z版基于jquery的图片复选框(asp.net+jquery)
Apr 12 Javascript
js简易namespace管理器 实例代码
Jun 21 Javascript
jQuery阻止事件冒泡具体实现
Oct 11 Javascript
浅谈javascript中自定义模版
Jan 29 Javascript
jquery实现点击其他区域时隐藏下拉div和遮罩层的方法
Dec 23 Javascript
JS实现焦点图轮播效果的方法详解
Dec 19 Javascript
jQuery插件HighCharts绘制2D饼图效果示例【附demo源码下载】
Mar 21 jQuery
vue select二级联动第二级默认选中第一个option值的实例
Jan 10 Javascript
jQuery模拟12306城市选择框功能简单实现方法示例
Aug 13 jQuery
Layui给数据表格动态添加一行并跳转到添加行所在页的方法
Aug 20 Javascript
JavaScript this在函数中的指向及实例详解
Oct 14 Javascript
jQuery DIV弹出效果实现代码
Jul 03 #Javascript
Javascript 遍历对象中的子对象
Jul 03 #Javascript
javascript web页面刷新的方法收集
Jul 02 #Javascript
javascript 操作文件 实现方法小结
Jul 02 #Javascript
javascript new 需不需要继续使用
Jul 02 #Javascript
ExtJS GTGrid 简单用户管理
Jul 01 #Javascript
JQuery 风格的HTML文本转义
Jul 01 #Javascript
You might like
php使用pdo连接sqlite3的配置示例
2016/05/27 PHP
php mysql_list_dbs()函数用法示例
2017/03/29 PHP
php实现简单的权限管理的示例代码
2017/08/25 PHP
tp5(thinkPHP5框架)时间查询操作实例分析
2019/05/29 PHP
JQuery+Ajax无刷新分页的实例代码
2014/02/08 Javascript
jQuery移除元素自动解绑事件实现思路及代码
2014/05/31 Javascript
javascript学习笔记(四)function函数部分
2014/09/30 Javascript
JS封装cookie操作函数实例(设置、读取、删除)
2015/11/17 Javascript
如何消除inline-block属性带来的标签间间隙
2016/03/31 Javascript
js将字符串中的每一个单词的首字母变为大写其余均为小写
2017/01/05 Javascript
JavaScript简单计算人的年龄示例
2017/04/15 Javascript
vue在使用ECharts时的异步更新和数据加载详解
2017/11/22 Javascript
JS中async/await实现异步调用的方法
2019/08/28 Javascript
微信小程序实现同时上传多张图片
2020/02/03 Javascript
[01:15]《辉夜杯》北京网鱼队巡礼
2015/10/26 DOTA
[01:02:34]TFT vs VGJ.T Supermajor 败者组 BO3 第二场 6.5
2018/06/06 DOTA
[01:10:02]IG vs Winstrike 2018国际邀请赛小组赛BO2 第一场 8.19
2018/08/21 DOTA
python多进程提取处理大量文本的关键词方法
2018/06/05 Python
python3读取图片并灰度化图片的四种方法(OpenCV、PIL.Image、TensorFlow方法)总结
2019/07/04 Python
一文弄懂Pytorch的DataLoader, DataSet, Sampler之间的关系
2020/07/03 Python
django ObjectDoesNotExist 和 DoesNotExist的用法
2020/07/09 Python
Python如何读取、写入CSV数据
2020/07/28 Python
Django扫码抽奖平台的配置过程详解
2021/01/14 Python
一文读懂python Scrapy爬虫框架
2021/02/24 Python
人力资源专业推荐信
2013/11/29 职场文书
党员一句话承诺大全
2014/03/28 职场文书
婚前协议书怎么写
2014/04/15 职场文书
团代会宣传工作方案
2014/05/08 职场文书
安全教育演讲稿
2014/05/09 职场文书
甘南现象心得体会
2014/09/11 职场文书
师范生免费教育协议书范本
2014/10/09 职场文书
医院护士工作检讨书
2014/10/26 职场文书
初中美术教学反思
2016/02/17 职场文书
《牧场之国》教学反思
2016/02/22 职场文书
利用前端HTML+CSS+JS开发简单的TODOLIST功能(记事本)
2021/04/13 Javascript
Python基础之进程详解
2021/05/21 Python