firebug指南(二)---firebug命令行API详解(转)
引言:
?????? 命令行是firebug中最有用的功能之一。如果你以前有过使用Visual Studio(简称VS)开发项目的经验,就应该知道你在使用VS进行调试程序的时候,“立即窗口(Immediate window)”和“监视窗口(Watch window)”的有用性。
?????? firebug的命令行类似于VS的立即窗口,你可以在任意时候检查一个特定对象的值,包括在设计时期也可以正常使用(注:VS的立即窗口只能在调试程序的时候使用)。此外,firebug命令行还有一个好处就是能够直接输入javascript代码即时执行。
?????? 接下来列举出的所有firebug命令行API都是能在firebug的官方网站上找到的(网址:http://getfirebug.com/commandline.html )。在这里我将会进一步结合例子介绍大部分的API,希望对各位读者能有一点帮助。
?
命令行种类:
???? 在控制台面板中有两类命令行。
????????? ·单行命令行
????????? ·多行命令行
单行命令行:
???? 单行命令行是firebug控制台面板中默认的,它允许我们每次只能输入一行命令。
???? 此外,我们还能通过按键盘上的“↑”和“↓”键翻阅之前输入过的历史纪录。
?
多行命令行:
???? 多行命令行是单行命令行的加强版,它允许我们一次可以输入多行 javascript代码同时执行。
?
????? 单行命令行和多行命令行各有各的优点,因此,您可以根据不同的场景使用不同的命令行,对于本人而言,主要还是使用单行命令行为主。
?
命令行API(附带例子):
???? 在正式学习这些API之前,我先声明一下,虽然所有的API都可以在开发阶段和程序运行阶段使用,但是最能发挥firebug所长的还是在调试我们的 javascript程序的时候。如果我们只是利用firebug去开发javascript程序,也许其他一些IDE会比firebug更适合。
例子下载~ Demo Zip File
API列表:
?#1. $(id )
?根据给定的id返回相应的元素。
?例子(1.0)~
?
步骤~
???? ·复制以上代码到一个空的HTML文件上,然后在firefox浏览器中打开它。
???? ·打开firebug控制面板(按F12键或点击右下角甲虫图标),点击控制台标签。
???? ·在命令行上输入$(’nameTextBox’) ,然后按回车键。
输出结果~

????? 这个用起来很简单(而且看上去似乎也没什么大用),但是我觉得这在多行命令行中进行javascript调试的时候是比较有用的。
????? 接下来让我们来看看如何使用多行命令行进行javascript代码的调试。
???????? ·点击单行命令行右边“^”图标。
?????????·将以下javascript代码拷贝到多行命令行中。
?????????·点击“运行”。
?#2. $$(selector)
?返回根据给定的CSS选择器相匹配的元素数组.
?注意:如果你还不清楚什么是CSS选择器,请点击此处 。
?例子(1.1)~
?
步骤:
??? ·在命令行中输入$$(’div’),然后敲击回车键(你将得到所有的div元素数组(div1和div2))。
#3. $x(xpath)
?
返回给定xml路径(xpath)相匹配的元素数组。
注意:如果你对xpath还不是很了解,请点击这里 。
例子(1.2)~
?
此例子我们将用多行命令行进行测试。
将下列代码粘贴到多行命令行中。
#4. dir(object)
打印给定对象的所有属性。而且打印出来的风格和在DOM标签上展示节点属性的风格是一样的。
这个例子我们还将继续沿用例子1.2中的HTML文件,然后将下列javascript代码粘贴到多行命令行中:
?
#5. clear()
清除控制台的内容。如果你想要清空控制台中的所有内容,只要在命令行中输入“clear()” 然后点击回车键即可。也可以在javascript代码中加入“console.clear()” 语句。
?
#6. inspect(object[,tabName])
?
在合适的标签中查看参数给定的对象,可选参数tabName可以强制制定跳转到哪个标签查看。这些合适的标签包括“HTML”,“css”,“脚本”,“dom”。
步骤~
??? ·在firefox浏览器中打开“example1.2”。
??? ·在单行命令行中输入($(’content-header’),’html’) 。
??? ·firebug将会自动跳转到HTML标签所对应的视图,而id为“content-header”的div标签将会被自动选择上(如下图)。

#7. keys(object)
?
返回对象所有属性名(包括方法名)的集合数组。对象可以是javascript对象( 如: var objCar = new Car() ) 或者也可以是HTML元素(如: document.getElementById(’table1′))。
?
?
步骤~
??? ·在firefox浏览器中打开“example1.4”。
??? ·在firebug中打开“控制面板”标签。
??? ·打开多行命令行(点击单行命令行右边“^”图标)。
??? ·将下列代码粘贴到多行命令行上。
#8. values(object)
返回该对象的所有属性值。
例子:参考例子1.4
步骤~
??? ·在firefox中打开“example1.4”。
??? ·点击“控制台”标签
??? ·跳转到多行命令行。
??? ·将下列代码输入到多行命令行中。
? 
?
注意:由于getManufactor是car的一个方法,所有只显示object超链接,而不是直接显示他的返回值“Toyota ”。
?
#9. debug(fn) and undebug(fu)
?在给定方法的第一行增加或删除一个断点。
?
注意:关于这部分内容,我将在这系列接下来的篇章中详细讲述,敬请期待:)
原文连接:http://04101334.iteye.com/blog/339695