Destripador

¡No, no se trata de Jack!... lo que vamos a destripar es una página web... lo que vamos a hacer es mostrar una sencilla manera de obtener cada una de las tripas que podemos encontrar cada vez que abrimos nuestro explorador.

Estructura de árbol

En la jerga informática se suele usar mucho lo que se conoce como "estructura de árbol", que no es otra cosa que una dependencia de unas cosas con otras, en dónde el objeto más importante es la raíz; y en una página web esa raiz es la propia ventana (el objeto window)

Del objeto window se desprenden unas cuantas ramas que a la vez en algunos casos son objetos y en otros no, estos últimos se podrían considerar simples "hojas", pero en lenguaje informático creo que es mejor decir que se trata de atributos o propiedades

El código que viene a continuación destripa el objeto window:

function destriparWindow()	{
	var tripas = "destripando el objeto <u>window</u>";
	dato = window;
	for(esto in dato)  tripas += "<br />" + esto + " = " + dato[esto];
	return tripas;
}

Si se quisiera mostrar las tripas de window en una capa podríamos crear esa capa vacía y con un identificador. Ejemplo: <div id="despiece_de_window" >, y el botón para activar el script podría estar definido así:

<button
 onclick="with 
(document.getElementById('despiece_de_window')) innerHTML = destriparWindow()" >
Destripar el objeto window
<button >

El siguiente espacio contiene el script y las definiciones de la capa y el botón para que pueda ver los resultados:



Viendo el resultado obtenido en el recuadro informativo, despues de activar el script, podemos ver que dependen del objeto window una buena cantidad de objetos (o tal vez sea mejor decir sub-objetos). Entre ellos podemos encontrar document, location, el propio objeto window, self... que nos permite deducir el próximo paso... que tal si modificamos nuestro destripador del objeto window, permitiendo un parámetro: un objeto para destripar.

Bueno, como yo ya lo hice, lo propongo como ejercicio... por ejemplo, en vez de llamarse: "destriparWindow()" podría ser "destriparObjeto()" o simplemente "destripar()". El parámetro será el objeto a destripar, así que la resolución del ejercicio pasaría por cambiar las coincidencias del objeto window en el script por lo que se pasa como parámetro. En foros del web pueden hacer las preguntas que quieran para esta tarea.

Otros objetos para destripar

La lista de objetos para destripar puede ser inmensa, incluso se pueden destripar nuevos objetos creados dinámicamente.

Objetos interesantes para destripar:

Conclusiones

Antes de terminar, me gustaría prevenir a aquellos osados lectores que se les haya pasado por la cabeza hacer un destripador recursivo, que en el momento que encuentre un objeto "destripable" lo destripe sin más. No sé si habrán notado que el objeto window tiene como rama desprendiéndose de sí otro objeto window. Y es que una de las características de esta estructura de árbol es que contiene nodos que se referencian a sí mismos, así que un sistema recursivo generaría un "bucle infinito", cosa que todo programador sabe que debe evitarse.

Para concluír, mostraré un enlace a un destripador que hice con anterioridad y que sirvió de semilla para escribir este artículo: Destripador web.