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.