Escolar Documentos
Profissional Documentos
Cultura Documentos
INTRODUCCIN
DOM (Modelo de objetos del documento) es una especificacin del consorcio W3C que provee
una interface (API) para acceder y manipular dinmicamente el contenido, la estructura y el
estilo del contenido de una pgina WEB.
Cuando un navegador carga una pgina WEB, DOM representa a todos los elementos
(etiquetas y atributos) y todo el contenido de una manera estructurada, proporcionando,
adems, una serie de operaciones o funciones para agregar, eliminar, recuperar y modificar
tales elementos y contenido HTML, de forma dinmica.
Para administrar los diferentes elementos de una pgina HTML, DOM se apoya en JavaScript,
aunque es una especificacin independiente de cualquier lenguaje.
DOM fue desarrollado para documentos XML y posteriormente fue adaptado para documentos
HTML. En 1998, el W3C public la primera versin, denominndose DOM nivel 1.
El mayor problema del uso de DOM, es que los diferentes navegadores an presentan
diferencias en el modelo de objetos del documento y algunas diferentes en la manera de
acceder a los elementos y al contenido de los documentos, provocando problemas de
compatibilidad. Para mejorar la compatibilidad, el W3C defini nuevas especificaciones
denominadas DOM nivel 2 y nivel 3.
DOM NIVEL 1
Especifica dos secciones: el ncleo, nivel 1, de DOM (API de bajo nivel que representa
cualquier documento de forma estructurada) y la seccin de HTML, nivel 1, que proporciona
una interface de alto nivel que permite interactuar con los elementos bsicos de una pgina
HTML y XML.
DOM NIVEL 2
DOM de nivel 2 proporciona, varias mejoras en relacin a DOM nivel 1, y el aadido del soporte
de vistas, eventos, estilos, navegacin y una propuesta de recomendacin de HTML. DOM 2
es la especificacin ms empleada por los navegadores actualmente, aunque algunos la
combinan con DOM 1 y aaden extensiones propietarias para mantener la compatibilidad con
los navegadores de versiones anteriores; sin embargo, la tendencia es a uniformizar el uso del
estndar.
Se debe tener en cuenta que DOM es sensiblemente dependiente de las especificaciones de
HTML, CSS y JavaScript empleados, toda vez que DOM acta directamente sobre las
etiquetas, atributos y funciones definidos por estos.
DOM NIVEL 3
Esta especificacin se lanz por el ao 2004 y an es un borrador que no ha sido completado
ni adoptado completamente por los desarrolladores de navegadores.
ESTRUCTURA DE OBJETOS DEL NAVEGADOR
Cada vez que un navegador carga una pgina, se crea automticamente una serie de objetos
que pueden ser usados desde JavaScript; los cuales son: window, document, frames, screen,
location, history y navigator.
El siguiente cuadro muestra la jerarqua de objetos creados por el navegador al cargar una
pgina Web:
Window es el objeto de mayor jerarqua en la estructura del contenido del navegador, del cual
derivan todos los dems elementos como si fueran propiedades suyas. Por cada ventana se
crea un objeto window.
De Window se derivan los objetos:
Document, es el objeto contenedor de todos los elementos de la pgina html: enlaces,
formularios, imgenes, marcos, etc.
Frames, contiene un arreglo o vector de los objetos frame; cada frame contiene, a su vez, otra
ventana.
Screen, contiene informacin de la ventana correspondiente a window, entre ellos: availHeight,
availWidth (alto y ancho de la pantalla en pixeles disponible para el navegador), height y width
que indican el alto y ancho de la pantalla en pixeles.
Location, contiene informacin de la URL que se est visualizando
History, contiene informacin de los URL visitados.
Navigator, contiene informacin acerca del navegador, como: nombre, versin, tipos MIME
soportados, plug in instalados y otros.
El acceso a los diferentes elementos de la pgina WEB se especifica mediante la notacin
clsica de objetos, a partir de window hasta el elemento en cuestin, separados por puntos;
por ejemplo, en la figura anterior, el acceso al componente option ser:
window.document.form.select.option;
aunque es comn omitir el nombre window cuando se trata del acceso a objetos de la misma
pgina.
TIPOS DE NODOS
La especificacin de DOM define los siguientes 12 tipos de nodos y el valor devuelto por los
atributos nodeName, nodeValue y nodeType:
MANIPULACIN DE ATRIBUTOS
DOM tambin permite la modificacin de los atributos de las etiquetas, las cuales se
transforman en propiedades de los nodos u objetos del modelo, luego el acceso a los mismos
se realiza mediante el nombre del elemento seguido del nombre de la propiedad, como
muestra el siguiente ejemplo:
<!doctype html>
<html lang="es">
<head>
<title>Ttulo de la pgina WEB</title>
</head>
<body>
<p id="uno">Primer prrafo del documento</p>
<p id="dos">Segundo prrafo del documento</p>
<p id="tres">Tercer prrafo del documento</p>
<script language="javascript">
var elem = document.getElementById("dos");
elem.setAttribute("align", "right");
elem.setAttribute("style", "background:#294");
</script>
</body>
</html>
Los atributos tambin pueden ser removidos de un nodo elemento, utilizando el mtodo
removeAttribute(), por ejemplo:
<!doctype html>
<html lang="es">
<head>
<title>Ttulo de la pgina WEB</title>
</head>
<body>
<p id="uno">Primer prrafo del documento</p>
<p id="dos">Segundo prrafo del documento</p>
<p id="tres">Tercer prrafo del documento</p>
<script language="javascript">
var elem = document.getElementById("dos");
elem.setAttribute("align", "right");
elem.setAttribute("style", "background:#294");
elem.removeAttribute("style");
</script>
</body>
</html>
Los nodos pueden ser movidos de su lugar original, por ejemplo:
<!doctype html>
<html lang="es">
<head>
<script languaje="javascript">
function mover (nodo){
document.body.appendChild(nodo);
}
</script>
<style type="text/css">
p {border: 2px solid black}
p.bolivar {background-color: #0CF}
p.strongest {background-color: yellow}
</style>
</head>
<body>
<p class="strongest" onclick="mover(this)">Haga clic sobre el The Strongest</p>
<p class="bolivar" onClick="mover(this)">Haga clic sobre el Bolivar</p>
</body>
</html>
VALORES DE FORMULARIOS
Los valores de los diferentes controles de los formularios son accesibles a travs de su
propiedad value. Para un acceso ms directo, cada control del formulario puede ser accedido
mediante el nombre del mismo.
El siguiente ejemplo ilustra cmo se puede emplear los valores introducidos en campos de
texto:
<!doctype html>
<html lang="es">
<head>
<script type="application/javascript">
function area(x,y){
return (parseFloat(x)*parseFloat(y)/2);
}
</script>
</head>
<body>
<form><br>
Base: <input type="text" size="5" name="bas"><br>
Altura: <input type="text" size="5" name="alt"
onblur="document.forms[0].result.value=area(document.forms[0].bas.value,this.value);">
<br><br>
rea: <input type="text" size="10" name="result">
</form>
</body>
</html>
O bien puede presentarse de una forma ms elegante, como se observa en el siguiente
ejemplo:
<!doctype html>
<html lang="es">
<head>
<script type="application/javascript">
function a(x,y){
return (parseFloat(x)*parseFloat(y)/2);
}
</script>
</head>
<body bgcolor="#0000ff">
<font color="#ff0000">
<h1><p align="center">calculo del rea de un tringulo</h1>
<hr>
</font>
<font color="#ffffff"><p>
<br>
<hr>
<font color="yellow">
<form>
<p align="center">
Base del tringulo: <input type="text" size="5" name="base">
<br>
Altura del tringulo: <input type="text" size="5" name="alto"
onblur="document.forms[0].result.value=a(document.forms[0].base.value,this.value);">
<br>
<br><hr><p align="center"><b>
rea del tringulo: <input type="text" size="10" name="result">
<hr>
</form>
</font></b>
</body>
</html>