JavaScript: Objetos del documento Francisco J. Martı́n Mateos Carmen Graciani Diaz Dpto. Ciencias de la Computación e Inteligencia Artificial Universidad de Sevilla Metodologı́a de la Programación JavaScript: Objetos del documento Modelo de objetos del documento Todo documento HTML tiene una estructura de objetos que permite hacer referencia a cada una de sus componentes Modelo de Objetos del Documento (DOM) Ciertos elementos dentro de un documento HTML (contenido y atributos) se pueden consultar y modificar a través del DOM El DOM es independiente de la plataforma y el lenguaje Metodologı́a de la Programación JavaScript: Objetos del documento DOM: Objeto window El objeto window es el objeto inicial de una página HTML Representa una ventana del navegador Propiedades: location: Propiedades del URI actual history: URIs visitadas anteriormente por el usuario document: Propiedades del documento actual status: Contenido del área de estado Metodologı́a de la Programación JavaScript: Objetos del documento DOM: Objeto window Método alert() Sintaxis: window.alert(texto) Argumento: Una cadena de texto Resultado: Genera una ventana de aviso con el texto Método confirm() Sintaxis: window.confirm(texto) Argumento: Una cadena de texto Resultado: Genera una ventana de confirmación con el texto. Devuelve un valor lógico dependiendo de la acción realizada en dicha ventana Método setTimeout() Sintaxis: window.setTimeout(expresion,tiempo) Argumento: Una expresion JavaScript y un número tiempo Resultado: Evalúa la expresion después de esperar el número de milisegundos indicados en tiempo Metodologı́a de la Programación JavaScript: Objetos del documento DOM: Objeto location El objeto location contiene las propiedades del URI actual No es un elemento del DOM, es un objeto JavaScript Propiedades href: El URI del documento Metodologı́a de la Programación JavaScript: Objetos del documento DOM: Objeto location Método reload() Sintaxis: location.reload() Resultado: Recarga el documento actual Método replace() Sintaxis: location.replace(uri) Argumento: Un uri válido Resultado: Cambia el documento actual por el documento referenciado por uri Nota: No modifica el historial de URI visitadas Método assign() Sintaxis: location.assign(uri) Argumento: Un uri válido Resultado: Carga en la ventana actual el documento referenciado por uri Nota: Modifica el historial de URI visitadas Metodologı́a de la Programación JavaScript: Objetos del documento DOM: Objeto history El objeto history contiene las URIs visitadas anteriormente por el usuario No es un elemento del DOM, es un objeto JavaScript Es un array de URIs Por seguridad no se puede acceder directamente a la información contenida en este array, únicamente se pueden utilizar los métodos que se describen a continuación Metodologı́a de la Programación JavaScript: Objetos del documento DOM: Objeto history Método go() Sintaxis: history.go(numero) Argumento: Un numero entero Resultado: Carga el documento del historial que está a un numero de posiciones del actual Método back() Sintaxis: history.back() Resultado: Carga el documento anterior en el historial de visitas Nota: Es equivalente a history.go(-1) Método forward() Sintaxis: history.forward() Resultado: Carga el documento siguiente en el historial de visitas Nota: Es equivalente a history.go(1) Metodologı́a de la Programación JavaScript: Objetos del documento DOM: Objeto status El objeto status es una cadena de texto que se muestra en la barra inferior de la ventana del navegador Modificación del objeto status <SCRIPT> function cambiaStatus (str) { window.status = str; } </SCRIPT> <DIV onMouseover="cambiaStatus(’Nuevo contenido’)"> Modificación del contenido de la barra de estado. </DIV> Metodologı́a de la Programación JavaScript: Objetos del documento DOM: Objeto document El objeto document contiene el documento actual Propiedades lastModified: Cadena con la fecha de la última modificación del documento location: Cadena con la URL del documento actual referrer: Cadena con la URL del documento que llamó al actual title: Cadena con el tı́tulo del documento actual bgColor: Color de fondo del documento fgColor: Color del primer plano del documento alinkColor: Color de los enlaces activos linkColor: Color de los enlaces vlinkColor: Color de los enlaces visitados anchors: Objeto array con las “anclas” anchor links: Objeto array con los enlaces link images: Objeto array con las imágenes image forms: Objeto array con los formularios form Metodologı́a de la Programación JavaScript: Objetos del documento DOM: Objeto document Método write() Sintaxis: document.write(texto) Argumento: Una cadena de texto Resultado: Escribe en el documento actual el texto Nota: Si el documento ya se ha terminado de cargar, entonces reemplaza su contenido con el texto Metodologı́a de la Programación JavaScript: Objetos del documento DOM: Objetos anchor y link El objeto anchor contiene información sobre un “ancla” Propiedades name: Valor del atributo name El objeto link contiene información sobre un enlace Propiedades href: Valor del atributo href Metodologı́a de la Programación JavaScript: Objetos del documento DOM: Objeto image El objeto image contiene información sobre una imagen Propiedades src: Valor del atributo src alt: Valor del atributo alt border: Valor del atributo border width: Valor del atributo width height: Valor del atributo height hspace: Valor del atributo hspace vspace: Valor del atributo vspace align: Valor del atributo align Metodologı́a de la Programación JavaScript: Objetos del documento DOM: Objeto form El objeto form contiene información sobre un formulario Para acceder a un formulario de un documento podemos Usar el ı́ndice correspondiente del array de formularios: document.forms[i] Usar el nombre del formulario (atributo name): document.formname Propiedades action: Valor del atributo action method: Valor del atributo method encoding: Valor del atributo enctype elements: Array de elementos del formulario Metodologı́a de la Programación JavaScript: Objetos del documento DOM: Objeto form Método reset() Sintaxis: document.forms[i].reset() document.formname.reset() Resultado: Resetea el formulario, equivale a pulsar un control de tipo reset Método submit() Sintaxis: document.forms[i].submit() document.formname.submit() Resultado: Envı́a el formulario, equivale a pulsar un control de tipo submit Metodologı́a de la Programación JavaScript: Objetos del documento Elementos de formularios Para acceder a los elementos de un formulario podemos Usar el ı́ndice correspondiente del array de elementos: document.forms[i].elements[j] document.formname.elements[j] Usar el nombre del elemento (atributo name): document.forms[i].elementname document.formname.elementname Metodologı́a de la Programación JavaScript: Objetos del documento Objeto input de campo de texto Es el objeto asociado a los controles <INPUT type="text"> y <INPUT type="password"> Propiedades name: Valor del atributo name type: Valor del atributo type value: Valor actual del atributo value size: Valor del atributo size maxLength: Valor del atributo maxlength disabled: Indica si el control está desactivado defaultValue: Valor por defecto del atributo value readOnly: Indica si el control es sólo de lectura Metodologı́a de la Programación JavaScript: Objetos del documento Objeto input de selección de opciones Es el objeto asociado a los controles <INPUT type="radio"> y <INPUT type="checkbox"> Propiedades name: Valor del atributo name type: Valor del atributo type value: Valor actual del atributo value disabled: Indica si el control está desactivado checked: Indica si el control está seleccionado defaultChecked: Valor de selección por defecto Metodologı́a de la Programación JavaScript: Objetos del documento Objeto input de selección de fichero Es el objeto asociado al control <INPUT type="file"> Propiedades name: Valor del atributo name type: Valor del atributo type value: Valor actual del atributo value disabled: Indica si el control está desactivado defaultValue: Valor por defecto del atributo value Metodologı́a de la Programación JavaScript: Objetos del documento Objeto input de botón Es el objeto asociado a los controles <INPUT type="reset">, <INPUT type="submit"> y <INPUT type="button"> Propiedades name: Valor del atributo name type: Valor del atributo type value: Valor actual del atributo value disabled: Indica si el control está desactivado Metodologı́a de la Programación JavaScript: Objetos del documento Objeto input oculto Es el objeto asociado al control <INPUT type="hidden"> Propiedades name: Valor del atributo name type: Valor del atributo type value: Valor actual del atributo value Metodologı́a de la Programación JavaScript: Objetos del documento Objetos input Todos los objetos input anteriores aceptan los siguientes métodos, a excepción del objeto input oculto Método focus() Sintaxis: document.forms[i].elements[i].focus() Resultado: Pone el foco en el elemento Método blur() Sintaxis: document.forms[i].elements[i].focus() Resultado: Quita el foco al elemento Método select() Sintaxis: document.forms[i].elements[i].select() Resultado: Selecciona el contenido del elemento Metodologı́a de la Programación JavaScript: Objetos del documento Objeto button Es el objeto asociado al control <BUTTON> Propiedades name: Valor del atributo name type: Valor del atributo type value: Valor actual del atributo value disabled: Indica si el control está desactivado Metodologı́a de la Programación JavaScript: Objetos del documento Objeto select Es el objeto asociado al control <SELECT> Propiedades name: Valor del atributo name type: Valor del atributo type size: Valor del atributo size multiple: Indica si el control admite selección múltiple disabled: Indica si el control está desactivado length: Número de opciones de selección selectedIndex: Índice de la primera opción seleccionada Metodologı́a de la Programación JavaScript: Objetos del documento Objeto select Método focus() Sintaxis: document.forms[i].elements[i].focus() Resultado: Pone el foco en el elemento Método blur() Sintaxis: document.forms[i].elements[i].focus() Resultado: Quita el foco al elemento Método remove() Sintaxis: document.forms[i].elements[i].remove(indice) Argumento: Un número natural indice Resultado: Elimina de la lista de opciones la que ocupa el lugar indicado por indice Metodologı́a de la Programación JavaScript: Objetos del documento Objeto option Es el objeto asociado al control <OPTION> Propiedades value: Valor del atributo value selected: Indica si la opción está seleccionada defaultSelected: Valor de selección por defecto disabled: Indica si la opción está desactivada index: Indice de la opción en la lista de selección Metodologı́a de la Programación JavaScript: Objetos del documento Objeto textarea Es el objeto asociado al control <TEXTAREA> Propiedades name: Valor del atributo name type: Valor del atributo type value: Contenido del control rows: Valor del atributo rows cols: Valor del atributo cols disabled: Indica si el control está desactivado defaultValue: Valor por defecto del atributo value readOnly: Indica si el control es sólo de lectura Metodologı́a de la Programación JavaScript: Objetos del documento Objeto textarea Método focus() Sintaxis: document.forms[i].elements[i].focus() Resultado: Pone el foco en el elemento Método blur() Sintaxis: document.forms[i].elements[i].focus() Resultado: Quita el foco al elemento Método select() Sintaxis: document.forms[i].elements[i].select() Resultado: Selecciona el contenido del elemento Metodologı́a de la Programación JavaScript: Objetos del documento Otros elementos HTML Cualquier etiqueta HTML admite el atributo id="identificador" De hecho cualquier etiqueta HTML admite cualquier atributo con cualquier valor, sólo que algunos tienen un significado especial para el navegador Cualquier etiqueta HTML tiene un objeto JavaScript asociado al que se puede acceder con el método getElementById() Sintaxis: document.getElementById(identificador) Argumento: Una cadena identificador Resultado: El objeto asociado a la etiqueta HTML cuyo valor del atributo id es identificador Metodologı́a de la Programación JavaScript: Objetos del documento Otros elementos HTML Cualquier atributo que se haya indicado en una etiqueta HTML tiene asociada una propiedad en el objeto asociado a dicha etiqueta Esta propiedad sirve para acceder al valor del atributo Etiqueta HTML: <HR id="id1" align="left"> Propiedades del objeto JavaScript asociado id: El valor del atributo id align: El valor del atributo align En caso de tratarse de una instrucción compuesta, también se puede acceder al contenido de dicha instrucción Etiqueta HTML: <H1 id="id1">contenido</H1> Propiedades del objeto JavaScript asociado innerHTML: El contenido de la instrucción Metodologı́a de la Programación JavaScript: Objetos del documento Otros elementos HTML Otros elementos HTML <H1 id="id1" onClick="alert(document.getElementById(’id1’).innerHTML)"> Otros elementos HTML</H1> <HR id="id2" align="left" size="5" width="50"> <SCRIPT> function alinea(val) { document.getElementById(’id2’).align = val; } </SCRIPT> <FORM> <BUTTON type="button" onClick="alinea(’left’)"> << </BUTTON> <BUTTON type="button" onClick="alinea(’center’)"> >< </BUTTON> <BUTTON type="button" onClick="alinea(’right’)"> >> </BUTTON> </FORM> Metodologı́a de la Programación JavaScript: Objetos del documento