Modelo de objetos del documento en javascript.
Caso práctico
Antonio está haciendo muchos avances en su proyecto. Por ejemplo, ya ha realizado casi toda la validación de los formularios de las páginas web empleando JavaScript, y les ha añadido mensajes de errores de forma dinámica. Ahora se encuentra con un pequeño problema: necesita poder acceder a algunas partes de su documento y modificar contenidos, pero no sabe cómo hacerlo. Le interesaría hacer cosas, como borrar celdas en tablas, añadir o modificar atributos a elementos, modificar contenido textual de cualquier parte del documento, etc. y todo ello usando JavaScript.
Juan le informa que todo eso que solicita se puede hacer con JavaScript, pero tendrá que hacer uso del DOM de una forma más intensiva. El DOM organiza todo el documento en una especie de árbol de elementos, de tal forma que, a través de JavaScript, podrá acceder a cada uno de esos nodos y modificar su contenido, añadir nuevos nodos, eliminarlos, recorrerlos, etc. Cualquier cambio que realice en el árbol de nodos, es reflejado de forma automática por el navegador web, con lo que las modificaciones son instantáneas de cara al cliente.
Por último, Antonio pregunta si es posible detectar qué botones del ratón han sido pulsados, o si se está utilizando una combinación de teclas en el teclado, ya que, por ejemplo, una de las cosas que quiere hacer en sus formularios es que, cuando se esté dentro de un campo de texto y se pulse Enter
se pase automáticamente al siguiente campo, o que cuando se pulse una combinación de teclas determinada, se realice una tarea que tenga programada en JavaScript.
Juan le responde que para hacer eso tiene que profundizar un poco más en los eventos y, en especial, en el objeto Event
, que le permite acceder a nuevas propiedades que le proporcionarán esa información específica que busca. Juan además puntualiza que, ahora que se mete de lleno en eventos más específicos, tendrá que tener en cuenta las incompatibilidades entre navegadores, para que sus aplicaciones sean multi-cliente. Para conseguirlo le da unas indicaciones de cómo tiene que programar los eventos, y qué diferencias va a encontrar entre los distintos navegadores.
En esta unidad de trabajo se hace una introducción al Modelo de Objetos del Documento y los diferentes niveles propuestos por el W3C. A continuación se profundiza en el árbol del DOM viendo lo que son los nodos del árbol, cómo acceder a ellos, a los nodos de tipo texto y los nodos de tipo atributo, para terminar viendo cómo crear nuevos nodos o borrar los nodos ya existentes.
En el apartado 2 se verá la gestión de eventos en JavaScript. Se analizará el modelo de eventos, qué tipos de eventos hay y se terminará dicha sección viendo el objeto Event
, sus propiedades y métodos más importantes y los eventos de teclado y de ratón, ya que éstos son los eventos más utilizados y más complejos de usar en JavaScript.