JavaScript. Master en Creación y Comunicación Digital. Curso 97/98. Nieves Pedreira. 1 JavaScript 1. Introducción JavaScript es un lenguaje de Script que se incluye directamente en las páginas Web y que el navegador interpreta junto con los demás códigos HTML. Los navegadores que son compatibles con JavaScript tienen el intérprete incorporado. Al escribir las páginas HTML se puede incluir una serie de instrucciones JavaScript. El navegador lee estas instrucciones y las “interpreta”, es decir, las ejecuta. El código que se escriba en JavaScript debe ir comprendido entre las etiquetas: <SCRIPT LANGUAGE=”JAVASCRIPT”> y </SCRIPT> Hay versiones antiguas de los navegadores que no tienen incorporado el intérprete. Para evitar que estos navegadores muestren el código como si fuera texto, se puede ocultar este código. Para ello se colocarán las sentencias JavaScript entre las marcas de comentario HTML: <SCRIPT LANGUAGE=”JAVASCRIPT”> <!-Sentencias //--> </SCRIPT> JavaScript trabaja con objetos. Estos objetos tienen propiedades y métodos asociados. Las propiedades son características de los objetos y los métodos son acciones asociadas a esos objetos. La forma de utilizarlos y de referirse a ellos es la siguiente: Para referirnos a un objeto, escribimos su nombre: objeto JavaScript. Master en Creación y Comunicación Digital. Curso 97/98. Nieves Pedreira. 2 Para referirnos a una propiedad escribimos el nombre del objeto seguido de un punto y el nombre de la propiedad: objeto.propiedad Para referirnos a un método escribimos el nombre del objeto seguido de un punto y el nombre del método seguido de paréntesis, entre los que debemos colocar los parámetros de entrada de ese método en caso de que los tenga: objeto.método() objeto.método(parámetro1, parámetro2…) Prestemos especial atención al hecho de que para ejecutar un método asociado a un objeto, hay que escribir objeto.método() -atención a los paréntesis, son necesarios aunque el método no lleve parámetros-. Para referirse a una propiedad, se escribirá objeto.propiedad -sin paréntesis-. Veamos un pequeño ejemplo: document.write(document.referrer) document.write(document.lastModified) En este ejemplo, document es un objeto, que se refiere al documento con el que estamos trabajando; write( ) es un método que escribe en el documento, y referrer y lastModified son propiedades del documento, que identifican, respectivamente, la página de la que se procede y la fecha de modificación del fichero. Los objetos, además de métodos y propiedades también pueden tener asociados gestores de eventos. Evento se refiere a algo que ocurre cuando el usuario realiza alguna acción: abre o cierra el documento, pasa el ratón sobre algo, hace un click... Se puede hacer que JavaScript responda a un evento determinado utilizando los gestores de eventos. La sintaxis básica para ello es: <ETIQUETA atributos GestorDeEventos=”CódigoJavaScript”> ETIQUETA sería el nombre de la etiqueta (TAG) que se esté utlizando, atributos los atributos de esa etiqueta, GestorDeEventos es el gestor que se quiera utilizar y CódigoJavaScript es la instrucción a procesar cuando se produzca ese evento. Los gestores de evento básicos son los siguientes: onAbort: Ejecuta el código asociado cuando se aborta la carga de una imagen. Esto se puede producir al seleccionar otro URL , al presionar el botón de "stop" JavaScript. Master en Creación y Comunicación Digital. Curso 97/98. Nieves Pedreira. 3 o el de "back", al presionar la tecla de "escape", o cualquier otra acción que interrumpa la carga. Se utiliza con el objeto image. onBlur: cuando el foco se aleja de un elemento de formulario. Puede utilizarse con los siguientes objetos: select, text, textarea. onChange: cuando el foco se aleja de un elemento de formulario, una vez que el contenido ha cambiado. Puede utilizarse con los siguientes objetos: select, text, textarea. onClick: cuando el usuario hace click en un elemento de formulario o en un vínculo. Puede utilizarse con los siguientes objetos: button, checkbox, radio, link, reset, submit. onError: Ejecuta el código asociado cuando se produce un error en la carga de una imagen, esto es, el browser no localiza la imagen en el servidor. Se utiliza con el objeto image. onFocus: cuando el foco se traslada a un elemento de formulario. Puede utilizarse con los siguientes objetos: select, text, textarea. onLoad: cuando la página se carga. Puede utilizarse con los objetos window e image. onMouseOut: cuando el usuario aleja el ratón de un vínculo. Puede utilizarse con el objeto link. onMouseOver: cuando el usuario señala con el ratón un vínculo. Puede utilizarse con el objeto link. onSelect: cuado el usuario selecciona algo en un elemento de formulario. Puede utilizarse con los siguientes objetos: text, textarea. onSubmit: cuando el usuario envía un formulario. Puede utilizarse con el objeto form. onUnload: cuando se pasa a otra página. Puede utilizarse co el objeto window. Hay una serie de objetos predefinidos que se refieren a cosas como la ventana actual, el documento sobre el que trabajamos, o el navegador que estamos utilizando. Ahora veamos estos objetos junto con sus métodos, propiedades y gestores de eventos asociados. JavaScript. Master en Creación y Comunicación Digital. Curso 97/98. Nieves Pedreira. 4 2. El objeto window Es el objeto de más alto nivel para cada objeto document, location, y history. 2.1. Propiedades defaultStatus es el mensaje mostrado por defecto en la barra de estado. frames es un array con todas las frames de la ventana. length es el número de frammes de la ventana. name es el argumento windowName. parent es un sinónimo de windowName y se refiere a una ventana que tiene frames. self es un sinónimo de windowName y se refiere a la ventana actual. status es un mensaje para la barra de estado. top es un sinónimo de windowName y se refiere a la ventana de más alto nivel del navegador. window es un sinónimo de windowName y se refiere a la ventana actual. Para trabajar con este objeto, veamos en primer lugar el ejemplo 1, que nos enseña cómo colocar mensajes en la barra de estado de la ventana. 2.2. Métodos alert("message"): Muestra una caja de diálogo de alerta con el mensaje elegido y un botón de aceptar. message es un string o la propiedad de algún objeto. Tenemos un ejemplo de este método en el ejemplo 2, que nos dice cómo mostrar estas ventanas de alert. close(): cierra la ventana. confirm("message") : Muestra una caja de diálogo de confirmación con el mensaje elegido y los botones de aceptar y cancelar. message es un string o la propiedad de algún objeto. open("URL", "windowName", ["windowFeatures"]): Abre una nueva ventana del navegador. También se puede utilizar de la siguiente manera: [windowVar = ][window].open("URL", "windowName", ["Features"]) JavaScript. Master en Creación y Comunicación Digital. Curso 97/98. Nieves Pedreira. 5 windowVar es el nombre de la nueva ventana. Tendremos que utilizar este nombre cada vez que nos queramos referir a propiedades y métodos de esa ventana. URL es la dirección que queremos abrir en la ventana. windowName es el nombre que tendremos que utilizar en el atributo TARGET de los tags <FORM> o <A>, para referirnos a ella. Este nombre sólo puede tener caracteres alfanuméricos y underscores ( _ ). windowFeatures es una lista de opciones y valores separados por comas. Las opciones son (se puede utilizar cualquier combinación): toolbar[=yes|no]|[=1|0] location[=yes|no]|[=1|0] directories[=yes|no]|[=1|0] status[=yes|no]|[=1|0] menubar[=yes|no]|[=1|0] scrollbars[=yes|no]|[=1|0] resizable[=yes|no]|[=1|0] width=pixels height=pixels pixels es un número natural que especifica la dimensión en pixels. En el ejemplo 3 vemos cómo abrir nuevas ventanas. prompt(message, [inputDefault]): muestra una caja de diálogo con un mensaje y un campo de entrada. message es un string o la propiedad de un objeto. inputDefault es un string, un entero o la propiedad de un objeto que representa el valor por defecto del campo de entrada. timeoutID = setTimeout(expression, msec): Evalúa una expresión al cabo de los milisengundos especificados. timeoutID es un identificador que devuelve el método setTimeout para poder cancelar el contador. expression es una expresión o la propiedad de un objeto. msec expresa los milisengundos a esperar antes de evaluar la expresión. JavaScript. Master en Creación y Comunicación Digital. Curso 97/98. Nieves Pedreira. 6 clearTimeout(timeoutID) Cancela un contador lanzado con el método setTimeout. 2.3. Gestores de Eventos onLoad: El código asociado al gestor de eventos onLoad se ejecuta cuando se termina de cargar una ventana. Veamos el ejemplo 4, que muestra un mensaje antes de cargar una nueva página. onUnload: El código asociado al gestor de eventos onUnload se ejecuta cuando se sale de una ventana. En el ejemplo 5 se nos muestra un mensaje antes de abandonar la página. 3. El objeto document Entendemos un objeto document como cualquier documento HTML especificado por los tags <HEAD> y <BODY>. Veamos más métodos y propiedades del objeto document: 3.1. Propiedades: alinkColor es el atributo ALINK anchors es un array con los enlaces a otras partes del documento (ANCHORS) bgColor es el atributo BGCOLOR fgColor es el atributo TEXT forms es un array con los formularios del documento images es un array con las imágenes del documento lastModified es la fecha de la última modificación linkColor es el atributo LINK links es un array con todos los enlaces del documento (LINKS) location es la URL completa del documento referrer es la URL del documento del que procede title es el contenido del tag <TITLE> vlinkColor es el atributo VLINK JavaScript. Master en Creación y Comunicación Digital. Curso 97/98. Nieves Pedreira. 3.2. 7 Métodos clear(): El método clear vacía el contenido de una ventana. open(["mimeType"]): Abre el documento para poder escribir en él con los métodos write() y writeln(). mimeType es un argumento opcional que especifica el tipo del documento, si no se especifica, se asume que es de tipo text/html. Hay las siguientes posibilidades: text/html: documento de texto con sintaxis HTML text/plain: documento de texto. image/gif: imagen gif. image/jpeg: imagen jpg. image/x-bitmap: imagen bmp. plugIn: carga el plug-in especificado y lo utiliza como destino de los métodos write and writeln. close(): Cierra el documento y lo muestra en la ventana. write(): Escribe una o varias expresiones HTML en el documento. Los ejemplos 6 y 7 escriben en el documento utilizando el método write(). writeln(): Escribe una o varias expresiones HTML en el documento, seguidas de salto de línea. 4. El objeto form form es también un objeto JavaScript. Permite introducir textos e interaccionar con otros objetos como checkboxes, radio buttons y listas de selección. También se puede utilizar para enviar información al servidor. 4.1. Propie dades: action es el atributo ACTION elements es un array con todos los elementos del formulario encoding es el atributo ENCTYPE length es el número de elementos del formulario method es el atributo METHOD target es el atributo TARGET JavaScript. Master en Creación y Comunicación Digital. Curso 97/98. Nieves Pedreira. 4.2. 8 Métodos submit(): envía el formulario al servidor http. 4.3. Gestores de eventos onsubmit: El código asociado al gestor de eventos onsubmit se ejecuta cuando se produce un evento de tipo submit. 5. El objeto link Un link es un texto o una imagen que tiene un enlace a otra página. Se define de la forma siguiente: <A HREF="location or URL" [NAME="anchorName"] [TARGET=”windowName”] [onClick="handlerText"] [onMouseOvert="handlerText"]> linkText </A> 5.1. Propiedades hash especifica el nombre de un ancla (link dentro del mismo documento) host especifica la parte hostname:port de la URL hostname especifica host y dominio o dirección IP de un servidor href especifica toda la URL pathname especifica el path de la URL port especifica el puerto utilizado por el servidor protocol especifica el protocolo (incluye los dos puntos) target es el atributo TARGET 5.2. Event handlers onClick: Ejecuta el código asociado cuando se pincha con el ratón en el link. onMouseOver: Ejecuta el código asociado al pasar el ratón sobre el link. onMouseOut: Ejecuta el código asociado al alejar el ratón del link. JavaScript. Master en Creación y Comunicación Digital. Curso 97/98. Nieves Pedreira. 9 6. El objeto image Un objeto image es una imagen que colocamos en una página HTML. Se define de la forma siguiente: <IMAGE NAME="imageName" SRC="imageSource" HEIGHT=imageHeight WIDTH=imageWidth [onLoad="handlerText"] [onAbort="handlerText"] [onError="handlerText"]> 6.1. Propiedades name es el atributo NAME. src es el atributo SRC. 6.2. Event handlers onAbort: Ejecuta el código asociado cuando se aborta la carga de la imagen. Esto se puede producir al seleccionar otro URL , al presionar el botón de "stop" o el de "back", al presionar la tecla de "escape", o cualquier otra acción que interrumpa la carga. OnLoad: Ejecuta el código asociado al comenzar la carga de la imagen. OnError: Ejecuta el código asociado cuando se produce un error en la carga de la imagen, esto es, el browser no localiza la imagen en el servidor. 7. El objeto button Un objeto button es un elemento de un formulario, por lo que debe ser definido dentro de un <FORM>. El objeto button es un botón que puede ejecutar un código cuando se pulse. Este código se especifica en el gestor de eventos onClick. El botón se define de la forma siguiente: <INPUT TYPE="button" NAME="buttonName" JavaScript. Master en Creación y Comunicación Digital. Curso 97/98. Nieves Pedreira. 10 VALUE="buttonText" [onClick="handlerText"]> 7.1. Propiedades name es el atributo NAME. value es el atributo VALUE. 7.2. Métodos click(): Hace el efecto de un click con el ratón. 7.3. Event handlers onClick: Ejecuta el código asociado cuando se produce un evento click. En el ejemplo 8 nos movemos por varias páginas a través de botones, y en el ejemplo 3 utilizamos un botón para abrir una nueva ventana. 8. El objeto history En este ejemplo se ha utilizado el objeto history. Este objeto tiene información de las URLs que se han visitado en la sesión. Esta información se guarda en una lista y se puede acceder a ella desde el menu “Ir” del navegador. 8.1. Propiedades: length: número de direcciones que contiene el objeto. 8.2. Métodos: back(): carga la URL que ocupa la posición anterior en la lista. forward(): carga la URL que ocupa la posición siguiente en la lista. go(delta | "direccion"): carga el documento elegido de la lista. delta es un entero que indica la posición relativa del documento que se quiere cargar. direccion es un string que representa una URL (o una parte de una URL) de la lista. Veamos de nuevo el ejemplo 8. JavaScript. Master en Creación y Comunicación Digital. Curso 97/98. Nieves Pedreira. 11 9. El objeto Checkbox Es un objeto checkbox de un formulario. Se define de la siguiente manera: <INPUT TYPE="checkbox" NAME="checkboxName" VALUE="checkboxValue" [CHECKED] [onClick="handlerText"]> textToDisplay 9.1. Propiedades checked: permite seleccionar o deseleccionar el checkbox (“1” o “0”). defaultChecked: es el atributo CHECKED. name: es el atributo NAME. value: es el atributo VALUE. 9.2. Métodos click(): simula el click del ratón. 9.3. Gestores de Even tos onClick: Ejecuta el código asociado cuando se produce un evento click. En el ejemplo 9 se utiliza el onClick de un checkbox. 10. El objeto radio Es un objeto radio de un formulario. Consta de varios botones radio, donde sólo uno de ellos puede estar seleccionado. Para hacer que varios botones radio pertenezcan al mismo objeto radio, hay que poner el mismo valor en el atributo NAME. Se define de la siguiente manera: <INPUT TYPE="radio" NAME="radioName" JavaScript. Master en Creación y Comunicación Digital. Curso 97/98. Nieves Pedreira. 12 VALUE="buttonValue" [CHECKED] [onClick="handlerText"]> textToDisplay 10.1. Propiedades checked: permite seleccionar o deseleccionar un botón radio (“1” o “0”) defaultChecked: es el atributo CHECKED length: es el número de botones de tipo radio en un objeto radio name: es el atributo NAME value: es el atributo VALUE 10.2. Métodos click(): simula el click del ratón. 10.3. Gestores de Eventos onClick: Ejecuta el código asociado cuando se produce un evento click. 11. El objeto select Es una lista de selección de un form. Puede ser una lista desplegable, en la que sólo se puede elegir una opción, o una lista con scroll, en la que se pueden seleccionar varios elementos. Se define de la siguiente manera: <SELECT NAME="selectName" [SIZE="integer"] [MULTIPLE] [onBlur="handlerText"] [onChange="handlerText"] [onFocus="handlerText"]> <OPTION VALUE="optionValue" [SELECTED]> textToDisplay [ ... <OPTION> textToDisplay] </SELECT> JavaScript. Master en Creación y Comunicación Digital. Curso 97/98. Nieves Pedreira. 11.1. 13 Propiedades length es el número de opciones name es el atributo NAME selectedIndex es el índice de la primera opción seleccionada. options es un array con los tags <OPTION> El array options tiene las siguientes propiedades: defaultSelected es el atributo SELECTED index es el índice de una opción length es el número de opciones en un objeto SELECT name es el atributo NAME selected permite seleccionar una opción selectedIndex es el índice de la opción seleccionada text es el texto que se muestra value es el atributo VALUE 11.2. Métodos blur(): el objeto deja de tener el foco focus(): el objeto pasa a tener el foco 11.3. Gestores de Eve ntos onBlur: Ejecuta el código asociado cuando el objeto deja de tener el foco. onChange: Ejecuta el código asociado cuando el objeto pierde el foco y su contenido ha cambiado. onFocus: Ejecuta el código asociado cuando el objeto recibe el foco. 12. El objeto location El objeto location tiene información sobre la URL actual. 12.1. Propiedades hash: especifica un ancla en la URL. host: es la parte NombreDelHost:puerto de la URL. hostname: nombre y dominio del servidor o dirección IP. href: es la URL entera. pathname: indica la dirección del documento dentro del servidor. JavaScript. Master en Creación y Comunicación Digital. Curso 97/98. Nieves Pedreira. 14 port: especifica el puerto del servidor. protocol: protocolo de comunicaciones utilizado (incluye los dos puntos) target: atributo TARGET de un link. 13. El objeto Navigator El objeto Navigator tiene información acerca del navegador que se está utilizando. 13.1. Propiedades appName: Especifica el nombre del Navegador appVersion: Versión del Navegador userAgent: Información completa que almacena el servidor appCodeName: Nombre en código del Navegador 14. Multimedia Para cualquiera de los componentes multimedia que se han visto (audio, video, quicktime y vrml) existen operadores JavaScript que permiten su manejo. 14.1. Vídeo play() – Comienza la reproducción del fichero . stop() – Detiene la reproducción del fichero. rewind() – Rebobina el fichero hasta el principio. seek(frame-number) – Establece como principio un determinado frame del fichero. 15. Ejemplo 1. Mensajes en la barra de estado Para mostrar mensajes en la barra de estado se utiliza la propiedad defaulStatus. Se puede fijar en cualquier momento, por ejemplo, al cargar una página o al pulsar un botón: <head> <script language=”JavaScript”> <!— defaultStatus=“Cargando la página” JavaScript. Master en Creación y Comunicación Digital. Curso 97/98. Nieves Pedreira. 15 //--> </script> </head> <body onload=”defaultStatus=’Ya está’”> 16. Ejemplo 2. Mensajes de bienvenida o de alerta Se puede hacer que al cargar una página, el navegador muestre una ventana con un mensaje. Para ello es necesario colocar un texto como el siguiente antes de la etiqueta head: <script language=”JavaScript”> <!— alert(“Bienvenido a mi Web!!!!!”) //--> </script> Esto lo que hace es mostrar la ventana de aviso antes de cargar la página, y una vez que el usuario pulsa el botón de aceptar se continúa con la carga de la página. También es posible mostrar el mensaje después de haber cargado el documento. Para ello se le añade a la etiqueta body: <body onload=”alert(‘Bienvenido a mi Web!!!’)”> (Hay que tener cuidado cuando se aniden comillas. Las interiores deben ser simples) 17. Ejemplo 3. Abrir ventanas secundarias Se puede utizar JavaScript para abrir otras ventanas del navegador. Veamos el ejemplo: Tendríamos que escribir el siguiente código en la cabecera del documento: <head> <script language="JavaScript"> function AbreVentana(){ open("ejemplo1.html","Ventana1"); } </script> </head> Aquí utilizamos la cabecera del documento para escribir funciones JavaScript que podrán ser llamadas desde otras partes del documento, a través de objetos JavaScript. JavaScript. Master en Creación y Comunicación Digital. Curso 97/98. Nieves Pedreira. 16 En este ejemplo se crea una nueva ventana del navegador en la que se carga la página ejemplo1.html. Se utiliza el método open asociado al objeto window. Y desde otra parte del documento, utilizando un form, podríamos hacer la siguiente llamada: <form> <input type="button" name="Boton" value="Abrir ventana secundaria" onclick="AbreVentana()"> </form> 18. Ejemplo 4. Dirijir a los lectores automáticamente Es muy útil, por ejemplo, si hemos cambiado nuestras páginas de dirección. Así podemos dar el aviso del cambio y, seguidamente, cargar la página nueva. <script language=”JavaScript”> <!— alert(“Nos hemos mudado. Cambia la página en tu bookmark.”) //--> </script> </head> <body onload=”location=’PaginaNueva.html’”> El mensaje alert muestra el mensaje de aviso. Una vez que se ha pulsado el botón de aceptar se continúa la carga de la página hasta la etiqueta body. Una vez que se ha cargado la página, ejecuta la instrucción onload, que, en este caso, le dice la página que tiene que cargar automáticamente. 19. Ejemplo 5. Mensajes de despedida Para hacer lo que se ha visto en el punto anterior pero a la hora de pasar a otra página diferente: <body onunload=”alert(‘No te vayas!!!’)”> 20. Ejemplo 6. Colocar la fecha de modificación de la página Web Añadir a la página el siguiente código: JavaScript. Master en Creación y Comunicación Digital. Curso 97/98. Nieves Pedreira. 17 <SCRIPT LANGUAGE=”JAVASCRIPT”> document.write(“Fecha de actualización:”) document.write(document.lastModified) </SCRIPT> 21. Ejemplo 7. Localizar la página desde la que se llega Hay que tener en cuenta que, para que este objeto contenga una URL, tenemos que haber llegado a esta página a través de un link en otra página (que sería la que se vería reflejada en la propiedad referrer). Esta propiedad contiene sólo la dirección de esa página, no nos lleva a ella. P&aacute;gina de la que procede: <BR> <SCRIPT LANGUAGE=”JAVASCRIPT”> document.write(document.referrer) </SCRIPT> 22. Ejemplo 8. Botones de navegación JavaScript proporciona una gran variedad de botones de navegación. Por ejemplo, se pueden añadir a la página botones que nos muevan por la páginas ya visitadas en la sesión: <form> <input type=”button” value=”2 páginas Atrás” onclick=”history.go(-2)”> <input type=”button” value=”Página Anterior” onclick=”history.back()”> <input type=”button” value=”Avanza 2 páginas” onclick=”history.go(2)”> <input type=”button” value=”Pag Siguiente” onclick=”history.forward()”> </form> 23. Ejemplo 9. Añadir mensajes en los formularios Es posible mostrar mensajes que faciliten la comprensión de los formularios. Hacerlos aparecer al hacer click en un elemento o al moverse de un elemento a otro: <script language=”JavaScript”> <!— function Caja1(){ alert(“Si cubres este campo, tu e-mail será enviado....”) JavaScript. Master en Creación y Comunicación Digital. Curso 97/98. Nieves Pedreira. 18 } //--> </script> <form> <input type=”checkbox” name=”check1” onclick=Caja1()> enviar e-mail </form> JavaScript. Master en Creación y Comunicación Digital. Curso 97/98. Nieves Pedreira. 24. 19 Sentencias Como ya hemos visto, con JavaScript podemos escribir funciones compuestas por métodos y propiedades de los objetos existentes. Además, podemos utilizar otro tipo de sentencias similares a las de otros lenguajes de programación. Veamos las palabras clave existentes y su sintaxis: break Se utiliza para terminar un bucle while o for. La ejecución continúa en la sentencia siguiente al fin del bucle. Ejemplos: La siguiente función tiene un break quer termina el bucle while cuando i vale 3 y devuelve el valor 3*x. function func(x) { var i = 0 while (i < 6) { if (i == 3) break i++ } return i*x } comentarios // comentario hasta fin de línea /* comentario hasta */ continue Termina una iteración de un bucle y continua en la siguiente iteración. Ejemplo Este ejemplo muestra un while que tiene un continue que se ejecuta cuando el valor de i es 3. Por lo tanto, n toma los valores 1, 3, 7 y 12. JavaScript. Master en Creación y Comunicación Digital. Curso 97/98. Nieves Pedreira. 20 i=0 n=0 while (i < 5) { i++ if (i == 3) continue n += i } for Sintaxis: for ([expresión inicial]; [condición]; [actualización]) { sentencias } Es un bucle que se ejecuta mientras se cumple la condición, empezando en la expresión inicial y actualizándose en cada iteración según la expresión de actualización. Ejemplo: Este for empieza por inicializar la variable i a cero. Comprueba si es menor que 9 y, en ese caso ejecuta las sentencias de dentro del bucle: for (var i = 0; i < 9; i++) { n += i myfunc(n) } for...in Sintaxis for (var in obj) { sentencias } Ejecuta las sentencias para todas las propiedades del objeto obj. Ejemplo: JavaScript. Master en Creación y Comunicación Digital. Curso 97/98. Nieves Pedreira. 21 Esta función devuelve un string que lista todas las propiedades de un objeto con sus valores. function dump_props(obj, obj_name) { var result = "" for (var i in obj) { result += obj_name + "." + i + " = " + obj[i] + "<BR>" } result += "<HR>" return result } function Sintaxis: function name([param] [, param] [..., param]) { statements } Declara el nombre de una función y sus parámetros.(Estos parámetros pueden ser strings, números y objetos) Para devolver un valor, debe tener una sentencia return que especifique el valor devuelto. Los parámetros se pasan por valor, es decir, que cualquier modificación al valor de un parámetro no se verá reflejado. Ejemplo: Esta función devuelve la cantidad total de ventas, y tiene como entrada el número de productos vendidos de cada tipo: function calc_sales(units_a, units_b, units_c) { return units_a*79 + units_b*129 + units_c*699 } if...else Sintaxis: JavaScript. Master en Creación y Comunicación Digital. Curso 97/98. Nieves Pedreira. 22 if (condition) { statements } [else { else statements }] Una sentencia condicional que ejecuta las primeras sentencias si se cumple la condición. Si no se cumple, se ejecutan las sentencias de la rama else.. Ejemplo: if ( cipher_char == from_char ) { result = result + to_char x++ } else result = result + clear_char new Sintaxis: objectName = new objectType ( param1 [,param2] ...[,paramN] ) Operador que crea una instancia de un objeto definido por el usuario. Para definir un nuevo tipo de objeto hacen falta dos pasos: 1.Definir el tipo como una función. 2.Crear una instancia del objeto con new. Ejemplo: 1. Definir el tipo: function car(make, model, year) { this.make = make this.model = model this.year = year } 2. Se crea una instancia del tipo car: mycar = new car("Eagle", "Talon TSi", 1993) JavaScript. Master en Creación y Comunicación Digital. Curso 97/98. Nieves Pedreira. 23 return Sintaxis: return expresión Especifica el valor devuelto por una función. Ejemplo: function square( x ) { return x * x } this Sintaxis: this[.propertyName] Sirve para referirse al objeto actual y a sus propiedades. Ejemplo: Supongamos que tenemos la siguiente función: function validate(obj, lowval, hival) { if ((obj.value < lowval) || (obj.value > hival)) alert("Invalid Value!") } Podríamos llamarla de la siguiente forma, para referirnos a un elemento de un form: <INPUT TYPE = "text" NAME = "age" SIZE = 3 onChange="validate(this, 18, 99)"> var Syntax var varname [= value] [..., varname [= value] ] Declara una variable varname, opcionalmente inicializada al valor value. El nombre puede ser cualquier identificador, y el valor, cualquier expresión. El dominio de la JavaScript. Master en Creación y Comunicación Digital. Curso 97/98. Nieves Pedreira. 24 variable es la función en la que está definida o, si está definida fuera de una función, la aplicación actual. Ejemplo: var num_hits = 0, cust_no = 0 while Sintaxis: while (condition) { statements } Crea un bucle que se repite mientras se cumpla la condición. Ejemplo: n=0 x=0 while( n < 3 ) { n ++; x += n } with Sintaxis: with (object){ statements } Cualquier referencia a una propiedad sin especificar el objeto al que está asociada, se supone del objeto entre paréntesis. Ejemplo: with (Math) { a = PI * r*r x = r * cos(theta) y = r * sin(theta)} Parte 1.- JavaScript 1. INTRODUCCIÓN ............................................................................................................................ 1 2. EL OBJETO WINDOW ................................................................................................................... 4 2.1. PROPIEDADES.................................................................................................................................. 4 2.2. MÉTODOS ....................................................................................................................................... 4 2.3. GESTORES DE EVENTOS .................................................................................................................. 6 3. EL OBJETO DOCUMENT ............................................................................................................. 6 3.1. PROPIEDADES: ................................................................................................................................ 6 3.2. MÉTODOS ....................................................................................................................................... 7 4. EL OBJETO FORM ......................................................................................................................... 7 4.1. PROPIEDADES: ................................................................................................................................ 7 4.2. MÉTODOS ....................................................................................................................................... 8 4.3. GESTORES DE EVENTOS................................................................................................................... 8 5. EL OBJETO LINK ........................................................................................................................... 8 5.1. PROPIEDADES.................................................................................................................................. 8 5.2. EVENT HANDLERS ........................................................................................................................... 8 6. EL OBJETO IMAGE ....................................................................................................................... 9 6.1. PROPIEDADES.................................................................................................................................. 9 6.2. EVENT HANDLERS ........................................................................................................................... 9 7. EL OBJETO BUTTON .................................................................................................................... 9 7.1. PROPIEDADES................................................................................................................................ 10 7.2. MÉTODOS ..................................................................................................................................... 10 7.3. EVENT HANDLERS ......................................................................................................................... 10 8. EL OBJETO HISTORY ................................................................................................................. 10 8.1. PROPIEDADES: .............................................................................................................................. 10 8.2. MÉTODOS: .................................................................................................................................... 10 9. EL OBJETO CHECKBOX ............................................................................................................ 11 9.1. PROPIEDADES................................................................................................................................ 11 9.2. MÉTODOS ..................................................................................................................................... 11 9.3. GESTORES DE EVENTOS ................................................................................................................ 11 10. EL OBJETO RADIO ...................................................................................................................... 11 10.1. PROPIEDADES ........................................................................................................................... 12 10.2. MÉTODOS ................................................................................................................................. 12 10.3. GESTORES DE EVENTOS ........................................................................................................... 12 11. EL OBJETO SELECT ................................................................................................................... 12 11.1. PROPIEDADES ........................................................................................................................... 13 11.2. MÉTODOS ................................................................................................................................. 13 11.3. GESTORES DE EVENTOS ........................................................................................................... 13 12. EL OBJETO LOCATION ............................................................................................................. 13 12.1. 13. EL OBJETO NAVIGATOR .......................................................................................................... 14 13.1. 14. PROPIEDADES ........................................................................................................................... 13 PROPIEDADES ........................................................................................................................... 14 MULTIMEDIA ............................................................................................................................... 14 14.1. VÍDEO ...................................................................................................................................... 14 15. EJEMPLO 1. MENSAJES EN LA BARRA DE ESTADO ......................................................... 14 16. EJEMPLO 2. MENSAJES DE BIENVENIDA O DE ALERTA ................................................ 15 17. EJEMPLO 3. ABRIR VENTANAS SECUNDARIAS ................................................................. 15 18. EJEMPLO 4. DIRIJIR A LOS LECTORES AUTOMÁTICAMENTE .................................... 16 19. EJEMPLO 5. MENSAJES DE DESPEDIDA............................................................................... 16 20. EJEMPLO 6. COLOCAR LA FECHA DE MODIFICACIÓN DE LA PÁGINA WEB .......... 16 21. EJEMPLO 7. LOCALIZAR LA PÁGINA DESDE LA QUE SE LLEGA ................................ 17 22. EJEMPLO 8. BOTONES DE NAVEGACIÓN ............................................................................ 17 23. EJEMPLO 9. AÑADIR MENSAJES EN LOS FORMULARIOS ............................................. 17 24. SENTENCIAS ................................................................................................................................. 19