Api de firebug

No todos saben que el fantástico plugin para firefox Firebug, dispone de una API de tipo línea de comandos con la que se puede interactuar con el código javascript de la página. Por ejemplo se puede crear un breakpoint al principio de una funcion con “debug(fn)” y registrar las llamadas a dicha funcion con “monitor(fn)”. Pero hay más.

Firebug incorpora estas funciones especiales que nos ayudan mucho a depurar nuestros programas:

$(id)
Devuelve el elemento con dicha id
$$(selector)
Devuelve un array de elementos con ese selector CSS
$x(xpath)
Devuelve un array de elementos que coinciden con la expresión xpath proporcionada
dir(object)
Imprime una lista interactiva de todas las propiedades del objeto. El resultado es idéntico al que se vería en la pestaña DOM
dirxml(node)
Imprime el código fuente de la rama de un elemento HTML o XML. El resultado es idéntico al que se vería en la pestaña HTML. Puedes pinchar en cualquier nodo para inspeccionarlo en la pestaña HTML
cd(window)
Por defecto las expresiones de línea de comando son relativas al nivel superior de ventana de la página. cd() permite cambiar de ventana o marco.
clear()
Limpia la consola
inspect(object[, tabName])
Inspecciona un objeto en la pestaña mas acorde para hacerlo. Se puede especificar la pestaña en tabName. La lista de pestañas es: "html", "css", "script", y "dom".
keys(object)
Devuelve un array conteniendo el nombre de todas las propiedades del objeto
values(object)
Devuelve un array conteniendo los valores de todas las propiedades del objeto
debug(fn)
Añade un breakpoint en la primera línea de una función
undebug(fn)
Elimina el breakpoint de la primera línea de una función
monitor(fn)
Activa el registro de las llamadas a la función
unmonitor(fn)
Desactiva el registro de las llamadas a la función
monitorEvents(object[, types])
Activa el registro de todos los eventos asociados a un objeto. El argumento opcional "types" puede especificar la familia de eventos a registrar, los mas comunes son "mouse" y "key". La lista completa es: "composition", "contextmenu", "drag", "focus", "form", "key", "load", "mouse", "mutation", "paint", "scroll", "text", "ui", y "xul"
unmonitorEvents(object[, types])
Elimina el registro de todos los eventos asociados a un objeto.
profile([title])
Activa el Javascript profiler. El argumento opcional "title" puede contener el texto que se va a imprimir en la cabecera del informe del profile.
profileEnd()
Elimina el profile de Javascript e imprime su informe.