SlideShare una empresa de Scribd logo
1 de 28
Descargar para leer sin conexión
6. UTILIZACIÓN DEL MODELO DE EVENTOS DEL DOCUMENTO (DOM)
6.1. EL MODELO DE OBJETOS DEL DOCUMENTO (DOM)
DOM:
• Estándar W3C que define cómo acceder a documentos (HTML, XML…).
• Interfaz de programación de aplicaciones (API) del W3C.
• Mediante scripts se puede acceder y actualizar el contenido dinámicamente.
Tipos:
LA U R A F O LG A D O G A LA CH E
DOM CORE: modelo
para cualquier
documento
estructurado.
XML DOM: modelo
estándar para
documentos XML.
HTML DOM: modelo
estándar para
documentos HTML
<!DOCTYPE html PUBLIC ”
//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1
-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<metahttp-equiv="Content-Type”
content="text/html; charset=iso-8859-1" />
<title>Páginasencilla</title>
</head>
<body>
<p>Estapáginaes <strong>muy
sencilla</strong></p>
</body>
</html>
LA U R A F O LG A D O G A LA CH E
6. UTILIZACIÓN DEL MODELO DE EVENTOS DEL DOCUMENTO (DOM)
6.1. EL MODELO DE OBJETOS DEL DOCUMENTO (DOM)
6. UTILIZACIÓN DEL MODELO DE EVENTOS DEL DOCUMENTO (DOM)
6.1. EL MODELO DE OBJETOS DEL DOCUMENTO (DOM)
Ordenación de la estructura del árbol:
• En el árbol de nodos el superior es la raíz.
• Cada nodo, salvo la raíz, tiene un padre.
• Un nodo puede tener cualquier número de hijos.
• Una hoja es un nodo sin hijos.
• Nodos con el mismo padre son hermanos.
LA U R A F O LG A D O G A LA CH E
6. UTILIZACIÓN DEL MODELO DE EVENTOS DEL DOCUMENTO (DOM)
6.2. OBJETOS DEL MODELO. PROPIEDADES Y MÉTODOS
Nodos más importantes
LA U R A F O LG A D O G A LA CH E
Elemento Descripción
Document Es el nodo raíz del documentoHTML, todos los documentos del árbol cuelgan deél
DocumentType
Representación del DTD dela página. Un DTD es una definicióndetipode documento. Definela
estructuray sintaxis deun documentoXML. El DOCTYPEes el encargadodeindicar el DocumentType.
Element
Representael contenidodeuna pareja de etiquetas de apertura y cierre(<etiqueta>...</etiqueta>). También
puede representar unaetiquetaabreviada que secierraa si misma(<br/>).
Estees el úniconodo que puede tener tantos nodos hijos comoatributos.
Attr Representael nombrede un atributoo valor.
Text Almacenalainformación quees contenidadentrodeun nodoElement.
CDataSection
Representauna secuenciadecódigode tipo<![CDATA[]]>. Estetextosolamenteseráanalizadopor un
programade análisis.
Comment Representaun comentarioXML.
6. UTILIZACIÓN DEL MODELO DE EVENTOS DEL DOCUMENTO (DOM)
6.2. OBJETOS DEL MODELO. PROPIEDADES Y MÉTODOS
Interfaz Node
• Javascript crea un objeto llamado Node para para manipular la interfaz de los
nodos.
• Define una serie de constantes que identifican los tipos de nodo (diapositiva
siguiente).
• También proporciona propiedades y métodos.
LA U R A F O LG A D O G A LA CH E
6. UTILIZACIÓN DEL MODELO DE EVENTOS DEL DOCUMENTO (DOM)
6.2. OBJETOS DEL MODELO. PROPIEDADES Y MÉTODOS
LA U R A F O LG A D O G A LA CH E
Node.ELEMENT_NODE = 1 Node.ATTRIBUTE_NODE = 2 Node.TEXT_NODE = 3 Node.CDATA_SECTION_NODE = 4 Node.ENTITY_REFERENCE_NODE = 5
Node.ENTITY_NODE = 6 Node.PRO CESSING_INSTRUCTION_NODE = 7 Node.COMMENT_NODE = 8 Node.DOCUMENT_NODE = 9
Node.DOCUMENT_TYPE_NODE = 10
Node.DOCUMENT_FRAGMENT_NODE =
11
Node.NOTATION_NODE = 12
Constantes que identifican los tipos de nodo
6. UTILIZACIÓN DEL MODELO DE EVENTOS DEL DOCUMENTO (DOM)
6.2. OBJETOS DEL MODELO. PROPIEDADES Y MÉTODOS
Propiedades y métodos
LA U R A F O LG A D O G A LA CH E
Propiedad/Método Valor devuelto Descripción
nodeName String Nombredel nodo (noestádefinidoparaalgunos tipos de nodo)
nodeValue String
Valor del nodo(noestádefinidopara algunos tipos denodo).
Ej. Para<p>Texto</p>, el nodeValue devolverá “Texto”.
nodeType Number Unade las 12 constantes definidas anteriormente.
ownerDocument Document Referenciaal documentoal que perteneceel nodo.
firstChild Node Primer nodode la listadechildNodes.
lastChild Node Últimonodode la listadechildNodes.
childNodes NodeList Listade todos los hijos del nodoactual.
6. UTILIZACIÓN DEL MODELO DE EVENTOS DEL DOCUMENTO (DOM)
6.2. OBJETOS DEL MODELO. PROPIEDADES Y MÉTODOS
Propiedades y métodos
LA U R A F O LG A D O G A LA CH E
Propiedad/Método Valor devuelto Descripción
previousSibling Node Referenciadel hermanoanterior o null si es el primer hermano.
nextSibling Node Referenciadel hermanosiguienteonull si es el últimohermano.
hasChildNodes() Boolean Devuelve true si el nodo actual tieneunoo más hijos.
attributes NamedNodeMap
Con nodos de tipo Element. Contieneobjetos detipoAttr que definen los
atributos del elemento.
appendChild(nodo) Node Añade un nuevo nodo al final dela listachildNodes.
removeChild(nodo) Node Eliminaun nodode lalistachildNodes.
replaceChild(nuevo,anterior) Node Reemplaza el nuevo nodo por el nodoanterior.
insertBefore(nuevo, anterior) Node Insertaun nuevo nodoantes de la posición del nodoanterior.
Ejemplode códigoen HTML:
<html>
<head>
<title>TituloDOM</title>
</head>
<body>
<p>ParrafoDOM</p>
<p>ParrafoDOM segundo</p>
<p>ParrafoDOM tres</p>
</body>
</html>
Nodo raíz:
var obj_html= document.documentElement;
Primer y útlimohijodel nodo:
var obj_head= obj_html.firstChild;
var obj_body= obj_html.lastChild;
Accesoa nodos desdeel índicedeun array:
var obj_head= obj_html.childNodes[0];
var obj_body= obj_html.childNodes[1];
Accesoal númerode hijos (longituddel array):
var numeroHijos= obj_html.childNodes.length;
LA U R A F O LG A D O G A LA CH E
6. UTILIZACIÓN DEL MODELO DE EVENTOS DEL DOCUMENTO (DOM)
6.3. ACCESO AL DOCUMENTO DESDE CÓDIGO
6. UTILIZACIÓN DEL MODELO DE EVENTOS DEL DOCUMENTO (DOM)
6.3. ACCESO AL DOCUMENTO DESDE CÓDIGO
Acceso a los tipos de nodo (extrayendo el valor):
• obj_tipo_document= document.nodeType; //9, o DOCUMENT_NODE
• obj_tipo_elemento=document.documentElement.nodeType; //1, o ELEMENT_NODE
Acceso a los tipos de nodo (comparando con el valor):
• alert(document.nodeType == Node.DOCUMENT_NODE); // true
• alert(document.documentEle
Acceso al texto de un nodo de tipo texto:
• Extraer el texto de un nodo: var x = document.getElementById(“miNodo").textContent;
• Cambiar el texto de un nodo: document.getElementById(“miNodo").textContent = "Paragraph
changed!“;
LA U R A F O LG A D O G A LA CH E
6. UTILIZACIÓN DEL MODELO DE EVENTOS DEL DOCUMENTO (DOM)
6.3. ACCESO AL DOCUMENTO DESDE CÓDIGO
Acceso directo a los nodos:
LA U R A F O LG A D O G A LA CH E
•Recupera los elementos de la página HTML que le hayamos pasado porparámetro.
•var divs= document.getElementsByTagName("div");
getElemementsByTagName()
•Recupera los datos de la página HTML donde “name”coincide con el name que le hayamos pasado en
la función.
•var divPrimero= document.getElementsByName("primero");
getElementsByName()
•Recupera el elemento HTMLcuyo ID coincida con el nombre pasado enla función.Ejemplo:
•var elemento1= document.getElementById("elemento1");
getElementById()
6. UTILIZACIÓN DEL MODELO DE EVENTOS DEL DOCUMENTO (DOM)
6.3. ACCESO AL DOCUMENTO DESDE CÓDIGO
Acceso a los atributos de un nodo de tipo element:
LA U R A F O LG A D O G A LA CH E
•Devuelve el nodode tipo attr cuyapropiedad nodeNamecontengael valor nomAttr.
getNameItem(nomAttr)
•Eliminael nododetipo attr en el que la propiedad nodeNamecoincidacon el valor nomAttr.
removeNameItem(nomAttr)
•Añade el nodo attr a la listadeatributos del nodoelement. Loindexasegún lapropiedad nodeNamedel
atributo.
setNameItem(nodo)
•Devuelve el nodocorrespondientealaposición indicadapor el valor numéricopos.
item(pos)
6. UTILIZACIÓN DEL MODELO DE EVENTOS DEL DOCUMENTO (DOM)
6.3. ACCESO AL DOCUMENTO DESDE CÓDIGO
Acceso a los nodos de tipo atributo:
LA U R A F O LG A D O G A LA CH E
• Equivale a attributes.getNameItem(nomAtributo)
getAttribute(nomAtributo)
•Equivale a attributes.getNamedItem(nomAtributo).value=valor
setAttribute(nomAtributo, valorAtributo)
• Equivale a attributes.removeNameItem(nomAtributo).
removeAttribute(nomAtributo)
EJERCICIO: u6e1_analisispagina:
• Dispones del código de una página web en html: u6e1_analisispagina_texto.html.
• Introduce en el apartado de script el código necesario para extraer:
• El número de párrafos de la página.
• El texto del segundo párrafo.
• El número de enlaces de la página.
• La dirección del primer enlace.
• La dirección del penúltimo enlace.
• El número de enlaces que apuntan a /wiki/Municipio
• El número de enlaces del primer párrafo.
• Para agregar texto en la página deberás introducir una etiqueta div con el id=info y
añadir en ella toda la información detallada mediante:
• Var info=document.getElementById(“info”);
• Info.innerHTML = “Texto informativo”;
LA U R A F O LG A D O G A LA CH E
6. UTILIZACIÓN DEL MODELO DE EVENTOS DEL DOCUMENTO (DOM)
6.3. ACCESO AL DOCUMENTO DESDE CÓDIGO
6. UTILIZACIÓN DEL MODELO DE EVENTOS DEL DOCUMENTO (DOM)
6.3. ACCESO AL DOCUMENTO DESDE CÓDIGO
Creación y eliminación de nodos
LA U R A F O LG A D O G A LA CH E
•Crea un nodo de tipo atributo conel nombre pasado a la función.
createAttribute(nomAtributo)
•Crea una secciónde tipo CDATA conun nodo hijo de tipo texto conel valorpasado.
createCDataSection(texto)
•Crea un nodo de tipo comentario conel contenido del texto pasado.
createComment(texto)
•Crea un nodo de tipo DocumentFragment.
createDocumentFragment():
6. UTILIZACIÓN DEL MODELO DE EVENTOS DEL DOCUMENTO (DOM)
6.3. ACCESO AL DOCUMENTO DESDE CÓDIGO
Creación y eliminación de nodos
LA U R A F O LG A D O G A LA CH E
•Crea un elemento del tipo etiqueta,del tipo del parámetro pasado como nomEtiqueta.
createElement(nomEtiqueta)
•Crea un nodo de tipo EntityReference.
createEntityReference(nomNodo)
•Crea un nodo de tipo ProcessingInstruction.
createProcessingInstrution(objetivo.dato)
•Crea un nodo de tipo texto conel valordel parámetro pasado.
createTextNode(texto)
6. UTILIZACIÓN DEL MODELO DE EVENTOS DEL DOCUMENTO (DOM)
6.3. ACCESO AL DOCUMENTO DESDE CÓDIGO
Ejemplo de creación de nodos en un documento:
var h = document.createElement(“h1") ; //crea el elemento h1
var t = document.createTextNode(“Hola, mundo"); //crea el nodo de texto
h.appendChild(t); //añade el texto al elemento h1
var att = document.createAttribute("class"); //crea el atributo
att.value = “prueba"; // añade el valor del atributo
h.setAttributeNode(att); //añade el atributo al nodo h1 creado
RESULTADO: <h1 class=“prueba”>Hola, mundo</h1>
LA U R A F O LG A D O G A LA CH E
6. UTILIZACIÓN DEL MODELO DE EVENTOS DEL DOCUMENTO (DOM)
6.3. ACCESO AL DOCUMENTO DESDE CÓDIGO
P A R A A Ñ A D I R U N
E L E M E N T O A L B O D Y :
document.body.appendChild(h);
RESULTADO:
<body>
<h1
class=“prueba”>Hola,
mundo</h1>
</body>
P A R A A Ñ A D I R U N E L E M E N T O
A O T R O E L E M E N T O Q U E Y A
E S T Á E N E L H T M L :
var miDiv = document.getElementById(“miDiv”);
miDiv.appendChild(h);
RESULTADO:
<body>
<div id=“miDiv”>
<h1 class=“prueba”>Hola,
mundo</h1>
</div>
</body>
LA U R A F O LG A D O G A LA CH E
EJERCICIO: u6e2_listado:
• Crea una página web que tenga un listado de tipo <ul> con un <li> de
muestra.
• Introduce un botón en la página que, cuando lo pulses, te muestre un prompt
para que el usuario introduzca un texto.
• Una vez cerrado el prompt el valor se añadirá como un nuevo <li> a la lista
creada.
• Añade dos botones más con texto “Borrar primer li” y “Borrar último li” de
modo que cuando pulses el primer botón borre el primer elemento de la lista
y cuando pulses el último borre el último elemento de la lista.
LA U R A F O LG A D O G A LA CH E
6. UTILIZACIÓN DEL MODELO DE EVENTOS DEL DOCUMENTO (DOM)
6.3. ACCESO AL DOCUMENTO DESDE CÓDIGO
EJERCICIO: u6e3_formulario:
• Crea de manera dinámica (es decir, al cargarse la página) el formulario que
definimos en el ejercicio u5e1_formulario.
• Ten en cuenta que el formulario deberá tener los atributos necesarios para
que, al crearse, tenga la misma funcionalidad que el que creaste en html.
• No olvides añadir las etiquetas <label> a cada uno de los elementos.
LA U R A F O LG A D O G A LA CH E
6. UTILIZACIÓN DEL MODELO DE EVENTOS DEL DOCUMENTO (DOM)
6.3. ACCESO AL DOCUMENTO DESDE CÓDIGO
6. UTILIZACIÓN DEL MODELO DE EVENTOS DEL DOCUMENTO (DOM)
6.4. PROGRAMACIÓN DE EVENTOS
Carga de la página HTML:
§ Se utiliza el evento onload:
<html>
<head><title>TituloDOM</title></head>
<body onload="alert('Página cargada completamente');">
<p>Primer parrafo</p>
</body>
</html>
LA U R A F O LG A D O G A LA CH E
6. UTILIZACIÓN DEL MODELO DE EVENTOS DEL DOCUMENTO (DOM)
6.4. PROGRAMACIÓN DE EVENTOS
Comprobar que el arbol DOM está cargado:
§ Se puede utilizar elmétodo window.onload:
<html>
<head><title>TituloDOM</title>
<script>
function cargada() {
window.onload="true";
if(window.onload){ return true;}
return false;
}
function pulsar(){
if(cargada()){ alert("Página cargadacorrectamente");}
}
</script>
</head>
<body><p onclick="pulsar();">Primerpárrafo</p></body>
</html>
LA U R A F O LG A D O G A LA CH E
6. UTILIZACIÓN DEL MODELO DE EVENTOS DEL DOCUMENTO (DOM)
6.4. PROGRAMACIÓN DE EVENTOS
Actuar sobre el DOM al desencadenarse eventos:
§ Se puede utilizar elmétodo window.onload:
<html>
<head><title>TituloDOM</title>
<script>
function ratonEncima(){
document.getElementsByTagName("div")[0].childNodes[0].nodeValue = "EL RATON ESTA ENCIMA";
}
function ratonFuera(){
document.getElementsByTagName("div")[0].childNodes[0].nodeValue = "NO ESTA EL RATON ENCIMA";
}
</script>
</head>
<body>
<div onmouseover="ratonEncima(); "onmouseout="ratonFuera();">
VALOR POR DEFECTO
</div>
</body>
</html>
LA U R A F O LG A D O G A LA CH E
6. UTILIZACIÓN DEL MODELO DE EVENTOS DEL DOCUMENTO (DOM)
6.5. DIFERENCIAS EN LAS IMPLEMENTACIONES DEL MODELO
Adaptaciones de código para diferentes navegadores:
§ Para mejorar la compatibilidad podemos crear de forma explícita las constantes
predefinidas:
• alert(Node.DOCUMENT_NODE); // Devolvería 9
• alert(Node.ELEMENT_NODE); // Devolvería 1
• alert(Node.ATTRIBUTE_NODE); // Devolvería 2
LA U R A F O LG A D O G A LA CH E
Adaptaciones de código para
diferentes navegadores:
if(typeofNode == "undefined") {
varNode = {
ELEMENT_NODE: 1,
ATTRIBUTE_NODE: 2,
TEXT_NODE: 3,
CDATA_SECTION_NODE: 4,
ENTITY_REFERENCE_NODE: 5,
ENTITY_NODE: 6,
PROCESSING_INSTRUCTION_NO
DE: 7,
COMMENT_NODE: 8,
DOCUMENT_NODE: 9,
DOCUMENT_TYPE_NODE: 10,
DOCUMENT_FRAGMENT_NODE:
11,
NOTATION_NODE: 12
};
}
LA U R A F O LG A D O G A LA CH E
6. UTILIZACIÓN DEL MODELO DE EVENTOS DEL DOCUMENTO (DOM)
6.5. DIFERENCIAS EN LAS IMPLEMENTACIONES DEL MODELO
6. UTILIZACIÓN DEL MODELO DE EVENTOS DEL DOCUMENTO (DOM)
6.5. DIFERENCIAS EN LAS IMPLEMENTACIONES DEL MODELO
Uso de librerías de terceros
§ Cross-browser: permite visualizar una página o aplicación igual en todos los
navegadores. Para ello surgen utilidades que permiten unificar eventos y propiedades.
§ Renderizar a través de una web: hay páginas que permiten introducir una dirección y
elegir la versión del navegador para visualizar (ej. Netrenderer.com, para explorer).
§ Programas para renderizar: permiten instalar varias versiones del mismo navegador,
pero dan problemas de compatibilidad de versiones con los últimos navegadores.
§ Instalar los navegadores en máquinas virtuales: consiste en instalar las versiones de los
navegadores en máquinas virtuales acorde con los sistemas operativos para los que hay
instalables de la versión del navegador. Hay que asegurarse que el navegador toma una
decisión u otra en función de la respuesta.
LA U R A F O LG A D O G A LA CH E
6. UTILIZACIÓN DEL MODELO DE EVENTOS DEL DOCUMENTO (DOM)
6.5. DIFERENCIAS EN LAS IMPLEMENTACIONES DEL MODELO
EJERCICIO: u6e4_generadorformularios:
Crea unaaplicación quetepermitirágenerar tus propios formulariosdemaneradinámica. Paraellodibujaunatablade
unasolafilay varias columnas. En cadacolumnahabráun botón querealicelosiguiente:
Crear un input detipotexto. Le preguntaráal usuariomedianteun prompt quénombre(atributoname)tieneel input.
• Crear un input detipopassword. Le preguntaráal usuariomedianteun prompt quénombre(atributoname)tieneel
input.
• Crear un textarea. Le preguntaráal usuarioel nombrey generará automáticamenteun textareade40 columnas y 5
filas.
• Crear un label. Preguntaráal usuarioaquéinput vareferido(atributofor).
• Crear unaimagen. Preguntaráal usuarioquérutatienelaimagen (atributosrc).
• Crear un checkbox. Preguntaráal usuarioel nombrey el valor (atributos namey value).
• Crear un radio. Preguntaráal usuarioel nombrey el valor (atributos namey value).
• Crear un botón (submit). Preguntaráal usuarioel nombrey el valor (atributos namey value).
LA U R A F O LG A D O G A LA CH E

Más contenido relacionado

La actualidad más candente (20)

Apuntes de DTD
Apuntes de DTDApuntes de DTD
Apuntes de DTD
 
HTML/CSS/java Script/Jquery
HTML/CSS/java Script/JqueryHTML/CSS/java Script/Jquery
HTML/CSS/java Script/Jquery
 
Java script
Java scriptJava script
Java script
 
XML Document Object Model (DOM)
XML Document Object Model (DOM)XML Document Object Model (DOM)
XML Document Object Model (DOM)
 
Introduction à ajax
Introduction à ajaxIntroduction à ajax
Introduction à ajax
 
Xml
XmlXml
Xml
 
CSS - CSS3
CSS - CSS3CSS - CSS3
CSS - CSS3
 
An Introduction to the DOM
An Introduction to the DOMAn Introduction to the DOM
An Introduction to the DOM
 
Lab #2: Introduction to Javascript
Lab #2: Introduction to JavascriptLab #2: Introduction to Javascript
Lab #2: Introduction to Javascript
 
Javascript 101
Javascript 101Javascript 101
Javascript 101
 
Document object model(dom)
Document object model(dom)Document object model(dom)
Document object model(dom)
 
CSS Day: CSS Grid Layout
CSS Day: CSS Grid Layout CSS Day: CSS Grid Layout
CSS Day: CSS Grid Layout
 
Java script -23jan2015
Java script -23jan2015Java script -23jan2015
Java script -23jan2015
 
Corso Javascript
Corso JavascriptCorso Javascript
Corso Javascript
 
Javascript
JavascriptJavascript
Javascript
 
DOM HTML Javascript
DOM HTML JavascriptDOM HTML Javascript
DOM HTML Javascript
 
05 Introduccion a HTML
05 Introduccion a HTML05 Introduccion a HTML
05 Introduccion a HTML
 
JavaScript - Chapter 8 - Objects
 JavaScript - Chapter 8 - Objects JavaScript - Chapter 8 - Objects
JavaScript - Chapter 8 - Objects
 
Document Object Model
Document Object ModelDocument Object Model
Document Object Model
 
Javascript aula 01 - visão geral
Javascript   aula 01 - visão geralJavascript   aula 01 - visão geral
Javascript aula 01 - visão geral
 

Similar a 6. Utilización del modelo de objetos del documento (DOM)

Programación_del_lado_del_servidor......
Programación_del_lado_del_servidor......Programación_del_lado_del_servidor......
Programación_del_lado_del_servidor......SaulSalinasNeri
 
05introduccionhtml 100901142734-phpapp02
05introduccionhtml 100901142734-phpapp0205introduccionhtml 100901142734-phpapp02
05introduccionhtml 100901142734-phpapp02SoftArt2014
 
Persistencia de un modelo de objetos
Persistencia de un modelo de objetosPersistencia de un modelo de objetos
Persistencia de un modelo de objetosJorge Ercoli
 
Taller MVVM Imagine Camp Medellín (Intermedio)
Taller MVVM Imagine Camp Medellín (Intermedio)Taller MVVM Imagine Camp Medellín (Intermedio)
Taller MVVM Imagine Camp Medellín (Intermedio)Sorey García
 
Tema 3 xml processing ap is
Tema 3   xml processing ap isTema 3   xml processing ap is
Tema 3 xml processing ap isxkorpium
 
Objeto document de JavaScript
Objeto document de JavaScriptObjeto document de JavaScript
Objeto document de JavaScriptpaz_ruiz
 
Desarrollo de Aplicaciones Web II - Sesión 03 - Formularios y Validaciones
Desarrollo de Aplicaciones Web II - Sesión 03 - Formularios y ValidacionesDesarrollo de Aplicaciones Web II - Sesión 03 - Formularios y Validaciones
Desarrollo de Aplicaciones Web II - Sesión 03 - Formularios y ValidacionesDidier Granados
 
domPwebAula03.pptx
domPwebAula03.pptxdomPwebAula03.pptx
domPwebAula03.pptxClaudetedeS1
 
Dom
DomDom
DomPEPE
 
Lenguajes de marcado
Lenguajes de marcadoLenguajes de marcado
Lenguajes de marcadoMaria Garcia
 
CSA - Web Parts en SharePoint 2010
CSA - Web Parts en SharePoint 2010CSA - Web Parts en SharePoint 2010
CSA - Web Parts en SharePoint 2010Comunidad SharePoint
 
Presentación de html, css y javascript.
Presentación  de html, css y javascript.Presentación  de html, css y javascript.
Presentación de html, css y javascript.CeteliInmaculada
 

Similar a 6. Utilización del modelo de objetos del documento (DOM) (20)

Programación_del_lado_del_servidor......
Programación_del_lado_del_servidor......Programación_del_lado_del_servidor......
Programación_del_lado_del_servidor......
 
05introduccionhtml 100901142734-phpapp02
05introduccionhtml 100901142734-phpapp0205introduccionhtml 100901142734-phpapp02
05introduccionhtml 100901142734-phpapp02
 
Persistencia de un modelo de objetos
Persistencia de un modelo de objetosPersistencia de un modelo de objetos
Persistencia de un modelo de objetos
 
Clase 8 Manipulación del DOM
Clase 8 Manipulación del DOMClase 8 Manipulación del DOM
Clase 8 Manipulación del DOM
 
Taller MVVM Imagine Camp Medellín (Intermedio)
Taller MVVM Imagine Camp Medellín (Intermedio)Taller MVVM Imagine Camp Medellín (Intermedio)
Taller MVVM Imagine Camp Medellín (Intermedio)
 
Tema 3 xml processing ap is
Tema 3   xml processing ap isTema 3   xml processing ap is
Tema 3 xml processing ap is
 
Frameworks de templates y xml
Frameworks de templates y xmlFrameworks de templates y xml
Frameworks de templates y xml
 
Tipo
TipoTipo
Tipo
 
Objeto document de JavaScript
Objeto document de JavaScriptObjeto document de JavaScript
Objeto document de JavaScript
 
Desarrollo de Aplicaciones Web II - Sesión 03 - Formularios y Validaciones
Desarrollo de Aplicaciones Web II - Sesión 03 - Formularios y ValidacionesDesarrollo de Aplicaciones Web II - Sesión 03 - Formularios y Validaciones
Desarrollo de Aplicaciones Web II - Sesión 03 - Formularios y Validaciones
 
domPwebAula03.pptx
domPwebAula03.pptxdomPwebAula03.pptx
domPwebAula03.pptx
 
Dom
DomDom
Dom
 
Lenguajes de marcado
Lenguajes de marcadoLenguajes de marcado
Lenguajes de marcado
 
Ead aplicaciones prácticas
Ead aplicaciones prácticasEad aplicaciones prácticas
Ead aplicaciones prácticas
 
Dom JavaScript
Dom JavaScriptDom JavaScript
Dom JavaScript
 
Js
JsJs
Js
 
CSS
CSSCSS
CSS
 
CSA - Web Parts en SharePoint 2010
CSA - Web Parts en SharePoint 2010CSA - Web Parts en SharePoint 2010
CSA - Web Parts en SharePoint 2010
 
HTML.ppt
HTML.pptHTML.ppt
HTML.ppt
 
Presentación de html, css y javascript.
Presentación  de html, css y javascript.Presentación  de html, css y javascript.
Presentación de html, css y javascript.
 

Más de Laura Folgado Galache

Introducción a SASS - Diseño de Interfaces Web (Desarrollo de Aplicaciones Web)
Introducción a SASS - Diseño de Interfaces Web (Desarrollo de Aplicaciones Web)Introducción a SASS - Diseño de Interfaces Web (Desarrollo de Aplicaciones Web)
Introducción a SASS - Diseño de Interfaces Web (Desarrollo de Aplicaciones Web)Laura Folgado Galache
 
Guías de estilo web - Diseño de interfaces web (Desarrollo de aplicaciones web)
Guías de estilo web - Diseño de interfaces web (Desarrollo de aplicaciones web)Guías de estilo web - Diseño de interfaces web (Desarrollo de aplicaciones web)
Guías de estilo web - Diseño de interfaces web (Desarrollo de aplicaciones web)Laura Folgado Galache
 
5. Interacción con el usuario: eventos y formularios
5. Interacción con el usuario: eventos y formularios5. Interacción con el usuario: eventos y formularios
5. Interacción con el usuario: eventos y formulariosLaura Folgado Galache
 
Empaquetado de aplicaciones Java con Netbeans
Empaquetado de aplicaciones Java con NetbeansEmpaquetado de aplicaciones Java con Netbeans
Empaquetado de aplicaciones Java con NetbeansLaura Folgado Galache
 
Repaso de Java Swing usando Rally-Coach
Repaso de Java Swing usando Rally-CoachRepaso de Java Swing usando Rally-Coach
Repaso de Java Swing usando Rally-CoachLaura Folgado Galache
 
Blogs - Creación y participación en comunidades virtuales (CFIE Soria)
Blogs - Creación y participación en comunidades virtuales (CFIE Soria)Blogs - Creación y participación en comunidades virtuales (CFIE Soria)
Blogs - Creación y participación en comunidades virtuales (CFIE Soria)Laura Folgado Galache
 

Más de Laura Folgado Galache (17)

Introducción a SASS - Diseño de Interfaces Web (Desarrollo de Aplicaciones Web)
Introducción a SASS - Diseño de Interfaces Web (Desarrollo de Aplicaciones Web)Introducción a SASS - Diseño de Interfaces Web (Desarrollo de Aplicaciones Web)
Introducción a SASS - Diseño de Interfaces Web (Desarrollo de Aplicaciones Web)
 
Guías de estilo web - Diseño de interfaces web (Desarrollo de aplicaciones web)
Guías de estilo web - Diseño de interfaces web (Desarrollo de aplicaciones web)Guías de estilo web - Diseño de interfaces web (Desarrollo de aplicaciones web)
Guías de estilo web - Diseño de interfaces web (Desarrollo de aplicaciones web)
 
5. Interacción con el usuario: eventos y formularios
5. Interacción con el usuario: eventos y formularios5. Interacción con el usuario: eventos y formularios
5. Interacción con el usuario: eventos y formularios
 
Usabilidad web
Usabilidad webUsabilidad web
Usabilidad web
 
Usabilidad móvil
Usabilidad móvilUsabilidad móvil
Usabilidad móvil
 
Empaquetado de aplicaciones Java con Netbeans
Empaquetado de aplicaciones Java con NetbeansEmpaquetado de aplicaciones Java con Netbeans
Empaquetado de aplicaciones Java con Netbeans
 
Tipos de manuales
Tipos de manualesTipos de manuales
Tipos de manuales
 
Ficheros de ayuda en aplicaciones
Ficheros de ayuda en aplicacionesFicheros de ayuda en aplicaciones
Ficheros de ayuda en aplicaciones
 
Distribución de aplicaciones
Distribución de aplicacionesDistribución de aplicaciones
Distribución de aplicaciones
 
Eventos y listeners en Java Swing
Eventos y listeners en Java SwingEventos y listeners en Java Swing
Eventos y listeners en Java Swing
 
Repaso de Java Swing usando Rally-Coach
Repaso de Java Swing usando Rally-CoachRepaso de Java Swing usando Rally-Coach
Repaso de Java Swing usando Rally-Coach
 
Imagen digital
Imagen digitalImagen digital
Imagen digital
 
Video digital
Video digitalVideo digital
Video digital
 
Sonido digital
Sonido digitalSonido digital
Sonido digital
 
Blogs - Creación y participación en comunidades virtuales (CFIE Soria)
Blogs - Creación y participación en comunidades virtuales (CFIE Soria)Blogs - Creación y participación en comunidades virtuales (CFIE Soria)
Blogs - Creación y participación en comunidades virtuales (CFIE Soria)
 
Taller de redes ssociales (Ávila)
Taller de redes ssociales (Ávila)Taller de redes ssociales (Ávila)
Taller de redes ssociales (Ávila)
 
Taller redes sociales (Valladolid)
Taller redes sociales (Valladolid)Taller redes sociales (Valladolid)
Taller redes sociales (Valladolid)
 

6. Utilización del modelo de objetos del documento (DOM)

  • 1.
  • 2. 6. UTILIZACIÓN DEL MODELO DE EVENTOS DEL DOCUMENTO (DOM) 6.1. EL MODELO DE OBJETOS DEL DOCUMENTO (DOM) DOM: • Estándar W3C que define cómo acceder a documentos (HTML, XML…). • Interfaz de programación de aplicaciones (API) del W3C. • Mediante scripts se puede acceder y actualizar el contenido dinámicamente. Tipos: LA U R A F O LG A D O G A LA CH E DOM CORE: modelo para cualquier documento estructurado. XML DOM: modelo estándar para documentos XML. HTML DOM: modelo estándar para documentos HTML
  • 3. <!DOCTYPE html PUBLIC ” //W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1 -transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <metahttp-equiv="Content-Type” content="text/html; charset=iso-8859-1" /> <title>Páginasencilla</title> </head> <body> <p>Estapáginaes <strong>muy sencilla</strong></p> </body> </html> LA U R A F O LG A D O G A LA CH E 6. UTILIZACIÓN DEL MODELO DE EVENTOS DEL DOCUMENTO (DOM) 6.1. EL MODELO DE OBJETOS DEL DOCUMENTO (DOM)
  • 4. 6. UTILIZACIÓN DEL MODELO DE EVENTOS DEL DOCUMENTO (DOM) 6.1. EL MODELO DE OBJETOS DEL DOCUMENTO (DOM) Ordenación de la estructura del árbol: • En el árbol de nodos el superior es la raíz. • Cada nodo, salvo la raíz, tiene un padre. • Un nodo puede tener cualquier número de hijos. • Una hoja es un nodo sin hijos. • Nodos con el mismo padre son hermanos. LA U R A F O LG A D O G A LA CH E
  • 5. 6. UTILIZACIÓN DEL MODELO DE EVENTOS DEL DOCUMENTO (DOM) 6.2. OBJETOS DEL MODELO. PROPIEDADES Y MÉTODOS Nodos más importantes LA U R A F O LG A D O G A LA CH E Elemento Descripción Document Es el nodo raíz del documentoHTML, todos los documentos del árbol cuelgan deél DocumentType Representación del DTD dela página. Un DTD es una definicióndetipode documento. Definela estructuray sintaxis deun documentoXML. El DOCTYPEes el encargadodeindicar el DocumentType. Element Representael contenidodeuna pareja de etiquetas de apertura y cierre(<etiqueta>...</etiqueta>). También puede representar unaetiquetaabreviada que secierraa si misma(<br/>). Estees el úniconodo que puede tener tantos nodos hijos comoatributos. Attr Representael nombrede un atributoo valor. Text Almacenalainformación quees contenidadentrodeun nodoElement. CDataSection Representauna secuenciadecódigode tipo<![CDATA[]]>. Estetextosolamenteseráanalizadopor un programade análisis. Comment Representaun comentarioXML.
  • 6. 6. UTILIZACIÓN DEL MODELO DE EVENTOS DEL DOCUMENTO (DOM) 6.2. OBJETOS DEL MODELO. PROPIEDADES Y MÉTODOS Interfaz Node • Javascript crea un objeto llamado Node para para manipular la interfaz de los nodos. • Define una serie de constantes que identifican los tipos de nodo (diapositiva siguiente). • También proporciona propiedades y métodos. LA U R A F O LG A D O G A LA CH E
  • 7. 6. UTILIZACIÓN DEL MODELO DE EVENTOS DEL DOCUMENTO (DOM) 6.2. OBJETOS DEL MODELO. PROPIEDADES Y MÉTODOS LA U R A F O LG A D O G A LA CH E Node.ELEMENT_NODE = 1 Node.ATTRIBUTE_NODE = 2 Node.TEXT_NODE = 3 Node.CDATA_SECTION_NODE = 4 Node.ENTITY_REFERENCE_NODE = 5 Node.ENTITY_NODE = 6 Node.PRO CESSING_INSTRUCTION_NODE = 7 Node.COMMENT_NODE = 8 Node.DOCUMENT_NODE = 9 Node.DOCUMENT_TYPE_NODE = 10 Node.DOCUMENT_FRAGMENT_NODE = 11 Node.NOTATION_NODE = 12 Constantes que identifican los tipos de nodo
  • 8. 6. UTILIZACIÓN DEL MODELO DE EVENTOS DEL DOCUMENTO (DOM) 6.2. OBJETOS DEL MODELO. PROPIEDADES Y MÉTODOS Propiedades y métodos LA U R A F O LG A D O G A LA CH E Propiedad/Método Valor devuelto Descripción nodeName String Nombredel nodo (noestádefinidoparaalgunos tipos de nodo) nodeValue String Valor del nodo(noestádefinidopara algunos tipos denodo). Ej. Para<p>Texto</p>, el nodeValue devolverá “Texto”. nodeType Number Unade las 12 constantes definidas anteriormente. ownerDocument Document Referenciaal documentoal que perteneceel nodo. firstChild Node Primer nodode la listadechildNodes. lastChild Node Últimonodode la listadechildNodes. childNodes NodeList Listade todos los hijos del nodoactual.
  • 9. 6. UTILIZACIÓN DEL MODELO DE EVENTOS DEL DOCUMENTO (DOM) 6.2. OBJETOS DEL MODELO. PROPIEDADES Y MÉTODOS Propiedades y métodos LA U R A F O LG A D O G A LA CH E Propiedad/Método Valor devuelto Descripción previousSibling Node Referenciadel hermanoanterior o null si es el primer hermano. nextSibling Node Referenciadel hermanosiguienteonull si es el últimohermano. hasChildNodes() Boolean Devuelve true si el nodo actual tieneunoo más hijos. attributes NamedNodeMap Con nodos de tipo Element. Contieneobjetos detipoAttr que definen los atributos del elemento. appendChild(nodo) Node Añade un nuevo nodo al final dela listachildNodes. removeChild(nodo) Node Eliminaun nodode lalistachildNodes. replaceChild(nuevo,anterior) Node Reemplaza el nuevo nodo por el nodoanterior. insertBefore(nuevo, anterior) Node Insertaun nuevo nodoantes de la posición del nodoanterior.
  • 10. Ejemplode códigoen HTML: <html> <head> <title>TituloDOM</title> </head> <body> <p>ParrafoDOM</p> <p>ParrafoDOM segundo</p> <p>ParrafoDOM tres</p> </body> </html> Nodo raíz: var obj_html= document.documentElement; Primer y útlimohijodel nodo: var obj_head= obj_html.firstChild; var obj_body= obj_html.lastChild; Accesoa nodos desdeel índicedeun array: var obj_head= obj_html.childNodes[0]; var obj_body= obj_html.childNodes[1]; Accesoal númerode hijos (longituddel array): var numeroHijos= obj_html.childNodes.length; LA U R A F O LG A D O G A LA CH E 6. UTILIZACIÓN DEL MODELO DE EVENTOS DEL DOCUMENTO (DOM) 6.3. ACCESO AL DOCUMENTO DESDE CÓDIGO
  • 11. 6. UTILIZACIÓN DEL MODELO DE EVENTOS DEL DOCUMENTO (DOM) 6.3. ACCESO AL DOCUMENTO DESDE CÓDIGO Acceso a los tipos de nodo (extrayendo el valor): • obj_tipo_document= document.nodeType; //9, o DOCUMENT_NODE • obj_tipo_elemento=document.documentElement.nodeType; //1, o ELEMENT_NODE Acceso a los tipos de nodo (comparando con el valor): • alert(document.nodeType == Node.DOCUMENT_NODE); // true • alert(document.documentEle Acceso al texto de un nodo de tipo texto: • Extraer el texto de un nodo: var x = document.getElementById(“miNodo").textContent; • Cambiar el texto de un nodo: document.getElementById(“miNodo").textContent = "Paragraph changed!“; LA U R A F O LG A D O G A LA CH E
  • 12. 6. UTILIZACIÓN DEL MODELO DE EVENTOS DEL DOCUMENTO (DOM) 6.3. ACCESO AL DOCUMENTO DESDE CÓDIGO Acceso directo a los nodos: LA U R A F O LG A D O G A LA CH E •Recupera los elementos de la página HTML que le hayamos pasado porparámetro. •var divs= document.getElementsByTagName("div"); getElemementsByTagName() •Recupera los datos de la página HTML donde “name”coincide con el name que le hayamos pasado en la función. •var divPrimero= document.getElementsByName("primero"); getElementsByName() •Recupera el elemento HTMLcuyo ID coincida con el nombre pasado enla función.Ejemplo: •var elemento1= document.getElementById("elemento1"); getElementById()
  • 13. 6. UTILIZACIÓN DEL MODELO DE EVENTOS DEL DOCUMENTO (DOM) 6.3. ACCESO AL DOCUMENTO DESDE CÓDIGO Acceso a los atributos de un nodo de tipo element: LA U R A F O LG A D O G A LA CH E •Devuelve el nodode tipo attr cuyapropiedad nodeNamecontengael valor nomAttr. getNameItem(nomAttr) •Eliminael nododetipo attr en el que la propiedad nodeNamecoincidacon el valor nomAttr. removeNameItem(nomAttr) •Añade el nodo attr a la listadeatributos del nodoelement. Loindexasegún lapropiedad nodeNamedel atributo. setNameItem(nodo) •Devuelve el nodocorrespondientealaposición indicadapor el valor numéricopos. item(pos)
  • 14. 6. UTILIZACIÓN DEL MODELO DE EVENTOS DEL DOCUMENTO (DOM) 6.3. ACCESO AL DOCUMENTO DESDE CÓDIGO Acceso a los nodos de tipo atributo: LA U R A F O LG A D O G A LA CH E • Equivale a attributes.getNameItem(nomAtributo) getAttribute(nomAtributo) •Equivale a attributes.getNamedItem(nomAtributo).value=valor setAttribute(nomAtributo, valorAtributo) • Equivale a attributes.removeNameItem(nomAtributo). removeAttribute(nomAtributo)
  • 15. EJERCICIO: u6e1_analisispagina: • Dispones del código de una página web en html: u6e1_analisispagina_texto.html. • Introduce en el apartado de script el código necesario para extraer: • El número de párrafos de la página. • El texto del segundo párrafo. • El número de enlaces de la página. • La dirección del primer enlace. • La dirección del penúltimo enlace. • El número de enlaces que apuntan a /wiki/Municipio • El número de enlaces del primer párrafo. • Para agregar texto en la página deberás introducir una etiqueta div con el id=info y añadir en ella toda la información detallada mediante: • Var info=document.getElementById(“info”); • Info.innerHTML = “Texto informativo”; LA U R A F O LG A D O G A LA CH E 6. UTILIZACIÓN DEL MODELO DE EVENTOS DEL DOCUMENTO (DOM) 6.3. ACCESO AL DOCUMENTO DESDE CÓDIGO
  • 16. 6. UTILIZACIÓN DEL MODELO DE EVENTOS DEL DOCUMENTO (DOM) 6.3. ACCESO AL DOCUMENTO DESDE CÓDIGO Creación y eliminación de nodos LA U R A F O LG A D O G A LA CH E •Crea un nodo de tipo atributo conel nombre pasado a la función. createAttribute(nomAtributo) •Crea una secciónde tipo CDATA conun nodo hijo de tipo texto conel valorpasado. createCDataSection(texto) •Crea un nodo de tipo comentario conel contenido del texto pasado. createComment(texto) •Crea un nodo de tipo DocumentFragment. createDocumentFragment():
  • 17. 6. UTILIZACIÓN DEL MODELO DE EVENTOS DEL DOCUMENTO (DOM) 6.3. ACCESO AL DOCUMENTO DESDE CÓDIGO Creación y eliminación de nodos LA U R A F O LG A D O G A LA CH E •Crea un elemento del tipo etiqueta,del tipo del parámetro pasado como nomEtiqueta. createElement(nomEtiqueta) •Crea un nodo de tipo EntityReference. createEntityReference(nomNodo) •Crea un nodo de tipo ProcessingInstruction. createProcessingInstrution(objetivo.dato) •Crea un nodo de tipo texto conel valordel parámetro pasado. createTextNode(texto)
  • 18. 6. UTILIZACIÓN DEL MODELO DE EVENTOS DEL DOCUMENTO (DOM) 6.3. ACCESO AL DOCUMENTO DESDE CÓDIGO Ejemplo de creación de nodos en un documento: var h = document.createElement(“h1") ; //crea el elemento h1 var t = document.createTextNode(“Hola, mundo"); //crea el nodo de texto h.appendChild(t); //añade el texto al elemento h1 var att = document.createAttribute("class"); //crea el atributo att.value = “prueba"; // añade el valor del atributo h.setAttributeNode(att); //añade el atributo al nodo h1 creado RESULTADO: <h1 class=“prueba”>Hola, mundo</h1> LA U R A F O LG A D O G A LA CH E
  • 19. 6. UTILIZACIÓN DEL MODELO DE EVENTOS DEL DOCUMENTO (DOM) 6.3. ACCESO AL DOCUMENTO DESDE CÓDIGO P A R A A Ñ A D I R U N E L E M E N T O A L B O D Y : document.body.appendChild(h); RESULTADO: <body> <h1 class=“prueba”>Hola, mundo</h1> </body> P A R A A Ñ A D I R U N E L E M E N T O A O T R O E L E M E N T O Q U E Y A E S T Á E N E L H T M L : var miDiv = document.getElementById(“miDiv”); miDiv.appendChild(h); RESULTADO: <body> <div id=“miDiv”> <h1 class=“prueba”>Hola, mundo</h1> </div> </body> LA U R A F O LG A D O G A LA CH E
  • 20. EJERCICIO: u6e2_listado: • Crea una página web que tenga un listado de tipo <ul> con un <li> de muestra. • Introduce un botón en la página que, cuando lo pulses, te muestre un prompt para que el usuario introduzca un texto. • Una vez cerrado el prompt el valor se añadirá como un nuevo <li> a la lista creada. • Añade dos botones más con texto “Borrar primer li” y “Borrar último li” de modo que cuando pulses el primer botón borre el primer elemento de la lista y cuando pulses el último borre el último elemento de la lista. LA U R A F O LG A D O G A LA CH E 6. UTILIZACIÓN DEL MODELO DE EVENTOS DEL DOCUMENTO (DOM) 6.3. ACCESO AL DOCUMENTO DESDE CÓDIGO
  • 21. EJERCICIO: u6e3_formulario: • Crea de manera dinámica (es decir, al cargarse la página) el formulario que definimos en el ejercicio u5e1_formulario. • Ten en cuenta que el formulario deberá tener los atributos necesarios para que, al crearse, tenga la misma funcionalidad que el que creaste en html. • No olvides añadir las etiquetas <label> a cada uno de los elementos. LA U R A F O LG A D O G A LA CH E 6. UTILIZACIÓN DEL MODELO DE EVENTOS DEL DOCUMENTO (DOM) 6.3. ACCESO AL DOCUMENTO DESDE CÓDIGO
  • 22. 6. UTILIZACIÓN DEL MODELO DE EVENTOS DEL DOCUMENTO (DOM) 6.4. PROGRAMACIÓN DE EVENTOS Carga de la página HTML: § Se utiliza el evento onload: <html> <head><title>TituloDOM</title></head> <body onload="alert('Página cargada completamente');"> <p>Primer parrafo</p> </body> </html> LA U R A F O LG A D O G A LA CH E
  • 23. 6. UTILIZACIÓN DEL MODELO DE EVENTOS DEL DOCUMENTO (DOM) 6.4. PROGRAMACIÓN DE EVENTOS Comprobar que el arbol DOM está cargado: § Se puede utilizar elmétodo window.onload: <html> <head><title>TituloDOM</title> <script> function cargada() { window.onload="true"; if(window.onload){ return true;} return false; } function pulsar(){ if(cargada()){ alert("Página cargadacorrectamente");} } </script> </head> <body><p onclick="pulsar();">Primerpárrafo</p></body> </html> LA U R A F O LG A D O G A LA CH E
  • 24. 6. UTILIZACIÓN DEL MODELO DE EVENTOS DEL DOCUMENTO (DOM) 6.4. PROGRAMACIÓN DE EVENTOS Actuar sobre el DOM al desencadenarse eventos: § Se puede utilizar elmétodo window.onload: <html> <head><title>TituloDOM</title> <script> function ratonEncima(){ document.getElementsByTagName("div")[0].childNodes[0].nodeValue = "EL RATON ESTA ENCIMA"; } function ratonFuera(){ document.getElementsByTagName("div")[0].childNodes[0].nodeValue = "NO ESTA EL RATON ENCIMA"; } </script> </head> <body> <div onmouseover="ratonEncima(); "onmouseout="ratonFuera();"> VALOR POR DEFECTO </div> </body> </html> LA U R A F O LG A D O G A LA CH E
  • 25. 6. UTILIZACIÓN DEL MODELO DE EVENTOS DEL DOCUMENTO (DOM) 6.5. DIFERENCIAS EN LAS IMPLEMENTACIONES DEL MODELO Adaptaciones de código para diferentes navegadores: § Para mejorar la compatibilidad podemos crear de forma explícita las constantes predefinidas: • alert(Node.DOCUMENT_NODE); // Devolvería 9 • alert(Node.ELEMENT_NODE); // Devolvería 1 • alert(Node.ATTRIBUTE_NODE); // Devolvería 2 LA U R A F O LG A D O G A LA CH E
  • 26. Adaptaciones de código para diferentes navegadores: if(typeofNode == "undefined") { varNode = { ELEMENT_NODE: 1, ATTRIBUTE_NODE: 2, TEXT_NODE: 3, CDATA_SECTION_NODE: 4, ENTITY_REFERENCE_NODE: 5, ENTITY_NODE: 6, PROCESSING_INSTRUCTION_NO DE: 7, COMMENT_NODE: 8, DOCUMENT_NODE: 9, DOCUMENT_TYPE_NODE: 10, DOCUMENT_FRAGMENT_NODE: 11, NOTATION_NODE: 12 }; } LA U R A F O LG A D O G A LA CH E 6. UTILIZACIÓN DEL MODELO DE EVENTOS DEL DOCUMENTO (DOM) 6.5. DIFERENCIAS EN LAS IMPLEMENTACIONES DEL MODELO
  • 27. 6. UTILIZACIÓN DEL MODELO DE EVENTOS DEL DOCUMENTO (DOM) 6.5. DIFERENCIAS EN LAS IMPLEMENTACIONES DEL MODELO Uso de librerías de terceros § Cross-browser: permite visualizar una página o aplicación igual en todos los navegadores. Para ello surgen utilidades que permiten unificar eventos y propiedades. § Renderizar a través de una web: hay páginas que permiten introducir una dirección y elegir la versión del navegador para visualizar (ej. Netrenderer.com, para explorer). § Programas para renderizar: permiten instalar varias versiones del mismo navegador, pero dan problemas de compatibilidad de versiones con los últimos navegadores. § Instalar los navegadores en máquinas virtuales: consiste en instalar las versiones de los navegadores en máquinas virtuales acorde con los sistemas operativos para los que hay instalables de la versión del navegador. Hay que asegurarse que el navegador toma una decisión u otra en función de la respuesta. LA U R A F O LG A D O G A LA CH E
  • 28. 6. UTILIZACIÓN DEL MODELO DE EVENTOS DEL DOCUMENTO (DOM) 6.5. DIFERENCIAS EN LAS IMPLEMENTACIONES DEL MODELO EJERCICIO: u6e4_generadorformularios: Crea unaaplicación quetepermitirágenerar tus propios formulariosdemaneradinámica. Paraellodibujaunatablade unasolafilay varias columnas. En cadacolumnahabráun botón querealicelosiguiente: Crear un input detipotexto. Le preguntaráal usuariomedianteun prompt quénombre(atributoname)tieneel input. • Crear un input detipopassword. Le preguntaráal usuariomedianteun prompt quénombre(atributoname)tieneel input. • Crear un textarea. Le preguntaráal usuarioel nombrey generará automáticamenteun textareade40 columnas y 5 filas. • Crear un label. Preguntaráal usuarioaquéinput vareferido(atributofor). • Crear unaimagen. Preguntaráal usuarioquérutatienelaimagen (atributosrc). • Crear un checkbox. Preguntaráal usuarioel nombrey el valor (atributos namey value). • Crear un radio. Preguntaráal usuarioel nombrey el valor (atributos namey value). • Crear un botón (submit). Preguntaráal usuarioel nombrey el valor (atributos namey value). LA U R A F O LG A D O G A LA CH E