Trucos javascript

Problema:

Enunciado
En muchas ocasiones no recuerdas exactamente si un objeto tiene tal o cual propiedad, o si la tiene cual es su valor, o necesitas conocer todas las propiedades de un determinado objeto y sus valores. Este es un truco especialmente válido para programadores con poca memoria o para esos momentos en que no encuentras la referencia del lenguaje o quieres comprobar si la versión del explorador que estás usando soporta o no una cierta propiedad.

Solución

Un resumen
Nada más sencillo, el truco consiste en recorrer todas las propiedades del objeto que queremos explorar sin usar el nombre de las propiedades sino accediendo mediante la sintaxis típica de los arrays. Esto se basa por un lado, en que cualquier propiedad de un objeto puede ser accedida por su nombre, como en document.all.miTabla, o por su orden en la lista de propiedades, como document.all[0]. Y por otro lado en que podemos recorrer los elementos de un array con la estructura for( ind in lista). Netscape se porta mejor y nos dá los nombres tanto de propiedades como de métodos, MSIExplorer sólo permite acceder a las propiedades de los objetos.

Ejemplo

Por ejemplo, estamos en en documento que contiene un bloque DIV y queremos saber cuales son las propiedades de este bloque.
El documento HTML podría contener:

<DIV id="mibloque"> Este es el contenido del bloeu</DIV>
<a href="javascript:verProps()">Ver propiedades de mibloque</a>

El enlace está para ilustrar este truco de programador. Parta listar todas las propiedades de este bloque usaríamos una función como esta (situada en HEAD dentro de las correspondinetes etiquetas script):

function verProps()
{
var indice;
var objeto = document.getElementById('mibloque')
var ventana = window.open("","nvent")
for ( indice in objeto)
       ventana.document.write("indice es "+ document.all.mibloque[indice]+"<br>")
}

Este sencillo ejemplo te abre una segunda ventana en la que escribiría el nombre y el valor de las propiedades de mibloque. Esto es igualmente váido para explorar los elementos de imágenes (document.images.laimagen)

scripts