Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Manual JAVASCRIPT
Manual JAVASCRIPT
3
1.1.-QUÉ ES JAVASCRIPT.......................................................................................................................3
1.2.-DÓNDE Y CÓMO ESCRIBIR LOS GUIONES................................................................................................3
2.- USO Y CLASIFICACIÓN DE OBJETOS ............................................................................................3
2.1.-CLASIFICACIÓN DE OBJETOS..............................................................................................................4
2.2.-PROPIEDADES Y MÉTODOS DEL OBJETO WINDOW......................................................................................4
2.2.-PROPIEDADES Y MÉTODOS DEL OBJETO DOCUMENT....................................................................................5
2.3.-PROPIEDADES Y MÉTODOS DEL OBJETO HISTORY......................................................................................5
2.4.-PROPIEDADES Y MÉTODOS DEL OBJETO LOCATION.....................................................................................6
3.-MANEJADORES DE EVENTOS.........................................................................................................6
onMouseover....................................................................................................................................................7
onClick............................................................................................................................................................7
onFocus - onBlur..............................................................................................................................................7
onLoad............................................................................................................................................................7
onUnload.........................................................................................................................................................8
onMouseout.....................................................................................................................................................8
5.- VARIABLES.................................................................................................................................. 9
6.- SENTENCIAS CONDICIONALES...................................................................................................10
7.- BUCLES...................................................................................................................................... 10
7.1.- BUCLE FOR............................................................................................................................... 11
7.1.- BUCLE WHILE............................................................................................................................11
7.3.- SENTENCIAS BREAK Y CONTINUE......................................................................................................11
8.- FUNCIONES................................................................................................................................11
9.- BARRAS DE ESTADO CON DESPLAZAMIENTO..............................................................................12
10.- IMÁGENES DE SUSTITUCIÓN....................................................................................................13
11.- BANNERS CÍCLICOS.................................................................................................................15
11.1.- AÑADIR VÍNCULOS A LOS BANNERS CÍCLICOS.....................................................................................15
12.- MARCOS...................................................................................................................................16
13.- TRABAJAR CON VENTANAS DE NAVEGADOR.............................................................................17
13.1.- ABRIR UNA VENTANA NUEVA.........................................................................................................17
13.2.- CARGAR DIFERENTES CONTENIDOS EN UNA VENTANA.............................................................................17
13.3.- DESPLAZAMIENTOS EN UNA NUEVA VENTANA......................................................................................18
13.4.- ACTUALIZAR UNA VENTANA DESDE OTRA...........................................................................................18
13.5.- CREAR PÁGINAS NUEVAS.............................................................................................................18
13.6.- CREAR UN PANEL DE CONTROL.......................................................................................................18
14.- VALIDACIÓN DE FORMULARIOS...............................................................................................19
14.1.- OBJETOS, PROPIEDADES Y MÉTODOS DE FORMULARIOS..........................................................................19
OBJETO FORM.................................................................................................................................. 19
OBJETOS BUTTON, SUBMIT Y RESET.......................................................................................................19
OBJETOS TEXT, TEXTAREA Y PASSWORD..................................................................................................19
OBJETO CHECKBOX...........................................................................................................................20
OBJETO RADIO................................................................................................................................ 20
OBJETO SELECT............................................................................................................................... 20
14.2.- VERIFICAR CONTRASEÑAS............................................................................................................20
14.3.- LISTA DESPLEGABLE DE DIRECCIONES..............................................................................................21
14.4.- BOTONES DE OPCIÓN.................................................................................................................21
15.- CONSTRUCCIÓN DE PÁGINAS DINÁMICAS................................................................................22
1
15.1.- IMPRIMIR LA FECHA ACTUAL..........................................................................................................22
15.2.- PERSONALIZAR EL MENSAJE SEGÚN EL MOMENTO.................................................................................23
16.- JAVASCRIPT Y LAS COOKIES....................................................................................................23
16.1.- ESTABLECER COOKIES.................................................................................................................23
16.2.- MOSTRAR COOKIES....................................................................................................................24
16.3.- BORRAR COOKIES.....................................................................................................................24
16.4.- Contador de visitas individual..................................................................................................24
2
1.- INTRODUCCIÓN
1.1.-QUÉ ES JAVASCRIPT
Javascript no es Java:
Java es un lenguaje de programación, desarrollado y comercializado por Sun Microsystems, que crea
programas totalmente autosuficientes. Estos programas se descargan en Internet, y se ejecutan en el
navegador al ser referenciados en la página web mediante las etiquetas OBJECT o APPLET.
Javascript también es un lenguaje de programación que puede usarse para añadir interactividad a las
páginas web. Sin embargo, los scripts de Javascript se escriben en la página web, al igual que se escriben
etiquetas y texto con HTML. En los comienzos fue desarrollado por Netscape.
Javascript se puede utilizar para muchas cosas, creando una interfaz de usuario activa:
Crear botones que se destacan luminosamente al pasar el cursor por encima de ellos.
Comprobar que los usuarios introducen información válida en los formularios, sin necesidad de utilizar un
programa CGI de servidor.
Crear páginas HTML personalizadas sobre la marcha, dependiendo de las acciones ejecutadas por el
usuario.
Controlar el navegador para abrir ventanas nuevas, visualizar ventanas de alerta, insertar mensajes
personalizados en la barra de estado.
Generar documentos con relojes, calendarios y hora, mediante un conjunto de funciones de fecha y hora.
Los guiones de Javascript se pueden crear con cualquier editor de texto, e irán encerrados entre las etiquetas
<SCRIPT LANGUAGE=JAVASCRIPT> y </SCRIPT> (para la versión 1.2 utilizaremos LANGUAJE=”JAVASCRIPT1.2”).
Un guión se puede colocar:
En la cabecera de un documento HTML, entre las etiquetas <HEAD> y su cierre, siempre que el guión no
vaya a escribir texto en la pantalla.
En el cuerpo del documento HTML, entre las etiquetas <BODY> y su cierre.
Utilizando únicamente el código Javascript.
Por otra parte, también podemos insertar comentarios que no se visualizarán en el navegador, con el fin de
documentar los guiones. Para comentar una sola línea emplearemos dos barras inclinadas hacia la derecha al
inicio de la misma:
//Comentario corto
Para insertar un comentario que ocupa varias líneas, escribiremos /* al inicio y */ al final del comentario:
3
Los objetos con los que trabaja Javascript son ventanas, documentos, formularios, los botones y las casillas
de verificación de los formularios, etc. Se trata de elementos que ya existen, como un documento, aunque
también se pueden crear nuevos objetos.
Los objetos tienen una serie de propiedades asociadas. Las propiedades pueden modificar a los objetos, y la
misma propiedad se puede aplicar a objetos completamente diferentes. Por ejemplo, una propiedad de un
documento es el color de fondo.
Por otra parte, los objetos tienen comportamientos que les pertenecen. Estos comportamientos o acciones se
denominan métodos. Por ejemplo clic() para los botones, open() para las ventanas, etc. Los paréntesis nos
indican que estamos refiriéndonos a un método y no a una propiedad.
En general, podríamos pensar que los objetos son sustantivos, las propiedades son adjetivos y los métodos
son verbos.
Para obtener una descripción mejor de un objeto o un proceso podemos juntar los objetos, las propiedades y
los métodos mediante la SINTAXIS DE PUNTO, separándolos por puntos:
objeto.propiedad document.bgcolor
o bien
objeto.método(parámetros del método)
2.1.-CLASIFICACIÓN DE OBJETOS
Cada objeto predefinido de Javascript determina una clase, con unas propiedades y métodos propios. Por
ejemplo, todas las imágenes pertenecen a la clase Image. Cada uno de los objetos de una clase será una
instancia de dicha clase de objeto y cada una de las instancias tendrá un nombre distinto.
Para especificar que una variable será un instancia de una clase de objeto, utilizaremos la palabra new:
instancia=new clase
Por ejemplo, torre=new Image, indica que la variable “torre” es un nuevo objeto de la clase “Image” y que
por lo tanto tendrá asociadas las mismas propiedades y métodos. La variable “torre” es una instancia del objeto
“Image”.
El objeto “window” es el que se encuentra en el nivel más alto de la jerarquía de objetos de Javascript. Los
objetos “Frame”, “document”, “history” y “location” son propiedades del objeto “window” y a su vez son objetos
por sí mismos.
Por ejemplo, “window.location” especifica la nueva URL del documento que se muestra en la ventana, y
“location.href.” tiene la misma función.
Otras propiedades de “window” son:
PROPIEDAD DESCRIPCIÓN
length número de marcos en la ventana
name nombre de la ventana
opener nombre del objeto window que abrió la ventana actual
4
parent ventana que contiene al marco actual
self sinómino para la ventana actual
status mensaje de la barra de estado
top ventana de nivel más alto que contiene al marco actual
MÉTODO DESCRIPCIÓN
alert muestra una ventana con un mensaje y un botón OK
confirm muestra una ventana con un mensaje y botones OK/CANCEL
prompt muestra una ventana con caja de texto y botones OK/CANCEL
back vuelve a la página anterior
forward va a la página siguiente
home va a la página de inicio
stop para la descarga de la página
focus centra el foco en la ventana
blur aleja el foco de la ventana
open abre una nueva ventana
close cierra la ventana
scroll desplaza el documento en la ventana a una posición concreta
setTimeout ejecuta una instrucción después de un número de milisegundos
clearTimeout cancela el tiempo de espera de un script que se inició con setTimeout
Este objeto hace referencia al documento de la ventana o marco. Puede ser también una propiedad de
“window” y de “frame”.
Al igual que “window”, el objeto “document” tiene propiedades que son objetos por sí mismas como “Link”,
“links”, “Form”, “forms”, “Image”, “images”. Otras propiedades que podemos destacar son las siguientes :
PROPIEDAD DESCRIPCIÓN
bgColor color del fondo en formato RGB
fgColor color del texto en formato RGB
linkColor color de los vínculos en formato RGB
alinkColor color de los vínculos activos en formato RGB
vlinkColor color de los vínculos visitados en formato RGB
URL del documento. Puede leerse pero no cambiarse.
location
No debe confundirse con "window.location"
URL igual que la anterior
URL del documento que contiene el enlace sobre el
referrer que el usuario ha pulsado para acceder al documento actual.
Si no hay ninguna, devuelve un espacio en blanco
title texto incluido entre <TITLE> y </TITLE>
lastModified fecha en que el documento fue modificado por última vez
Existe un método de “document” que sirve para escribir en el documento: el método write. También tiene
asociados los métodos open y close, que sirven para abrir y cerrar el flujo de escritura en el documento, y
serán usados para escribir en una ventana o marco desde otro.
5
El objeto “history” representa la lista que mantiene el navegador de todas las páginas que ha visitado el
usuario durante la sesión.
PROPIEDAD DESCRIPCIÓN
length número de páginas visitadas durante la sesión
current URL del documento actual
previous URL del documento anterior
next URL del documento siguiente
MÉTODO DESCRIPCIÓN
back() carga el documento anterior de la lista history
forward() carga el documento siguiente de la lista history
carga el documento del índice indicado de la lista
go()
history
Este objeto representa la URL del documento actual. Cada parte de la URL coincide con una propiedad del
objeto:
PROPIEDAD DESCRIPCIÓN
href URL completa
protocol método de acceso a la información (http, ftp...)
nombre de la máquina a la que nos conectamos
host
(www.iespuntadelverde.com)
puerto por el que nos conectamos. Si no se indica,
port
toma el asignado por defecto
pathname ruta del documento en el servidor
hash ancla del documento donde nos queremos posicionar
search cadenas de consulta
hostname nombre de la máquina y puerto
El objeto “location” tiene los métodos reload, para volver a cargar la página, y replace para cargar la página
que se le indica de modo que ocupe en la lista history la posición que ocupaba la actual.
3.-MANEJADORES DE EVENTOS
Los eventos son acciones que el usuario realiza mientras visita la página, como enviar un formulario, mover el
ratón, etc. A cada evento que tiene lugar podemos asociarle una nueva acción mediante un guión de Javascript.
Para ello trabajaremos con manejadores de eventos. Por ejemplo, un evento puede ser que el usuario envíe un
formulario y la reacción mostrarle una ventana de alerta.
La sintaxis de un manejador de eventos es la siguiente:
Si queremos ejecutar más de una sentencia de Javascript, separaremos unas de otras mediante comas.
6
Estos manejadores de eventos, aunque emplean el código de Javascript para provocar una nueva acción, se
insertan en el código HTML acompañando a la etiqueta del objeto sobre el que deben actuar. Se dice que están
“incrustados”, por lo que no requieren la etiqueta <SCRIPT> y su correspondiente etiqueta de cierre:
Y para asociar más de un manejador de eventos a un mismo objeto, basta con que separemos unos de otros
mediante espacios en blanco:
Como vemos en la sintaxis, el código Javascript asociado a un evento se encuentra entre comillas dobles, por
lo tanto dentro del mismo debemos incluir comillas simples cuando sea necesario.
Algunos manejadores de eventos son:
ONMOUSEOVER
ONCLICK
Al pulsar sobre el enlace, se crea una ventana de alerta que avisa al usuario. Para ello utilizamos el
método “alert()” del objeto “window”, que podemos escribir sólo cuando “window” hace referencia a la
ventana actual. Como parámetro del método incluimos el mensaje entre comillas dobles (en este caso
simples por encontrarse ya entre comillas dobles).
“return false” devuelve falso, por lo que la acción que debe ejecutarse tras cerrar la ventana se detiene
(no se produce la búsqueda de la página a la cual hace referencia el enlace).
7
En el segundo ejemplo (go.htm) el método “go()” del objeto “history” nos permite introducir botones que
nos llevarán a las páginas anterior y posterior visitadas por el usuario. Los parámetros de “go()” son
números, positivos para ir hacia delante en el historial de páginas visitadas durante la sesión y negativos
para ir hacia atrás.
ONFOCUS - ONBLUR
Con este ejemplo queremos que en la barra de estado aparezca un texto explicativo sobre lo que el
usuario debe escribir cuando se sitúa en un cuadro de texto de un formulario. El evento tiene lugar cuando
el usuario coloca el cursor en la caja.
Cuando el cursor abandona la caja, aparece un nuevo texto en la barra de estado.
ONLOAD
Este manejador del evento “load” se sitúa dentro de las etiquetas <BODY> o <IMG...> del documento HTML, de
forma que la acción deseada se ejecuta cuando termina de cargarse el documento o la imagen.
ONUNLOAD
En este caso la acción se ejecutará cuando el usuario abandone la página, bien porque cierra la ventana o
porque carga otro documento en la misma ventana. Debe incluirse acompañando a la etiqueta <BODY> del
documento HTML.
ONMOUSEOUT
Las sentencias de Javascript asociadas a este manejador de eventos se ejecutarán cuando el cursor abandone
el objeto. Como vemos puede aplicarse a cualquier objeto: un trozo de texto, un vínculo, una imagen, etc.
PRÁCTICA 01
Crea una página que contenga un trozo de texto, de forma que al situar el ratón sobre él cambie el
color de fondo del documento y al mismo tiempo aparezca un mensaje en la barra de estado.
OPERADORES
Los operadores son los símbolos empleados para trabajar con variables. En Javascript podemos utilizar los
siguientes:
OPERADOR ACCIÓN
x+y (numérico) suma x e y
x+y (cadena) concatena x e y
x-y resta y a x
x*y multiplica x e y
x/y divide x entre y
x%y resto de la división
x++,++x añade uno a x (x=x+1)
x--,--x resta uno a x (x=x-1)
-x invierte el signo de x
8
Aunque tanto “x++” como “++x” añaden uno a la variable “x”, no son idénticos. El primero incrementa
“x” después de que la asignación esté completa, y el segundo antes de que sea así
Por ejemplo:
x=5 y=x++ da como resultado y=5 x=6 es decir, primero asigna a “y” el valor de “x” y luego
incrementa en uno la variable “x”
x=5 y=++x da como resultado y=6 x=6 es decir, primero incrementa un uno el valor de “x” y
luego se lo asigna a la variable “y”
ASIGNACIONES
Para asignar un valor a una variable debemos utilizar un operador de asignación. Los operadores de
asignación distintos al signo de igualdad nos servirán como atajos para modificar el valor de las variables:
ASIGNACIÓN ACCIÓN
x=y pone en x el valor de y
x+=y igual que x=x+y
x-=y igual que x=x-y
x*=y igual que x=x*y
x/=y igual que x=x/y
x%=y igual que x=x%y
COMPARACIONES
También podemos establecer comparaciones entre el valor de una variable y otra, o comparar una variable
con un valor literal:
COMPARACIÓN ACCIÓN
x==y devuelve verdadero si x e y son iguales
x!=y devuelve verdadero si x e y no son iguales
x>y devuelve verdadero si x es mayor que y
x>=y devuelve verdadero si x es mayor o igual que y
x<y devuelve verdadero si x es menor que y
x<=y devuelve verdadero si x es menor o igual que y
x&&y devuelve verdadero si x e y son verdaderas
x||y devuelve verdadero si x o y son verdaderas
!x devuelve verdadero si x es falsa
5.- VARIABLES
Una variable, al igual que en otros lenguajes, será un nombre empleado para almacenar algún tipo de datos.
En Javascript una variable puede tomar los siguientes valores:
Números, incluidos enteros expresados en decimal, hexadecimal u octal, o números de punto flotante
Valores booleanos
Cadenas de caracteres.
Valores nulos.
Una sentencia de Javascript.
Para declarar una variable utilizaremos la palabra reservada “var” de la siguiente forma:
o bien
var variable
9
variable = valor
En Javascript no se determina el tipo de variable de que se trata en la declaración, según el tipo de datos que
vaya a almacenar, sino que el propio intérprete se encarga de hacerlo. Además, no es necesario declarar las
variables, basta con que a su nombre le asignemos un valor.
El nombre de una variable no puede coincidir con un comando de Javascript ni con una palabra reservada.
Podrá estar formado por cualquier combinación de números enteros positivos y letras, comenzando por una
letra o un guión bajo pero nunca por un número.
Una sentencia condicional es aquella que establece una condición para que se realicen una serie de acciones u
otras.
En Javascript la sintaxis de las sentencias condicionales es la siguiente:
if (condición){
sentencia1
sentencia2
.
.
}
else{
sentenciaX
sentenciaY
.
.
}
o bien
(condición)?sentencias_then:sentencias_else
Si solamente hay una sentencia (tanto en el bloque “if” como en el bloque “else”) las llaves de inicio y cierre
del bloque se pueden suprimir.
PROPIEDAD DESCRIPCIÓN
appCodeName nombre del código del navegador (Mozilla para Netscape)
appName nombre del navegador
appVersion versión del navegador
userAgent información que envía el navegador al servidor
10
language lenguaje del navegador
platform sistema operativo que se utiliza
Además, como método de “navigator” tenemos “javaEnabled()”, que devuelve “true” si Java está activado.
PRÁCTICA 02
Crea una página de forma que si el usuario ha visitado alguna página antes que esta, muestre un
mensaje diciendo cuántas páginas ha visitado antes. Si esta es la primera página que visita el
usuario, se lo agradeceremos en una ventana de alerta y luego lo redireccionaremos a nuestra home
page.
7.- BUCLES
Los bucles permiten ejecutar un bloque de código un número determinado de veces. Los que podemos utilizar
en Javascript son:
Estructura “for”.
Estructura “while”.
Estructura “for/in”.
Estructura “do/while”.
En este caso el código al que hace referencia se ejecutará siempre que se cumpla la condición impuesta.
Utiliza una variable de control, denominada “contador”, que comienza siempre con un valor. En el código del
bucle especificaremos:
El valor inicial del contador.
La condición.
El modo en que se incrementa o disminuye el contador.
Las sentencias a ejecutar.
Su sintaxis es la siguiente:
for (contador=inicio;condición;incremento/decremento)
{
sentencia1
sentencia2
.
.
}
También podemos suprimir las llaves de inicio y cierre del bucle si éste sólo contiene una sentencia.
PRÁCTICA 3
Crea una página que presente los números naturales del 1 al 10, indicando junto a cada número si
es par o impar. Combinar para ello las sentencias "if" y "for".
11
En un bucle “for” sabemos desde el principio cuántas veces se va a repetir la ejecución de las sentencias. Sin
embargo, con la estructura “while” el bloque de instrucciones se seguirá ejecutando mientras se cumpla la
condición especificada, sobre la cual no conocemos cuándo dejará de ser cierta.
La sintaxis de esta estructura es:
while (condición)
{
sentencia1
sentencia2
.
.
}
La sentencia “break” nos permite interrumpir un bucle y continuar la ejecución del script en la primera
sentencia que se encuentra tras el bucle.
La sentencia “continue” interrumpe la ejecución de una iteración del bucle y comienza a ejecutar la siguiente.
8.- FUNCIONES
Una función será un conjunto de sentencias de Javascript que realizan una tarea determinada, separadas del
resto del código.
Cada función debe recibir un nombre y puede ser llamada desde otras partes del guión. Además, podemos
llamar a una función cuantas veces sea necesario durante la ejecución del guión.
La definición de la función suele incluirse en la cabecera del documento, para que luego el script pueda
llamarla desde cualquier punto de la página web.
La sintaxis para definir una función es:
La definición de una función no implica su ejecución. La ejecución se realizará al efectuar una llamada a dicha
función. Para llamar a una función escribimos su nombre seguido del valor de los argumentos separados por
comas y encerrados entre paréntesis. Los argumentos especifican la información que recibirá la función para
procesarla. En el caso de que la función no necesite argumentos, podemos suprimir los paréntesis sólo en la
llamada (no en la definición).
Si nos interesa que la función devuelva algún valor, debemos incluir una sentencia con la palabra reservada
“return” seguida del valor a devolver.
Veamos cómo hacer que un trozo de texto aparezca desplazándose en la barra de estado del navegador. Para
ello analizaremos el ejemplo “Barra de estado” (script09). Antes debemos conocer algunas propiedades y
métodos de“String”, objeto asociado a tipos de datos.
12
Toda cadena en un script es un objeto de tipo “String”. La propiedad más importante es “length”, que
especifica el número de caracteres que contiene la cadena. El método que utilizaremos en este ejemplo es
“substring(posicionA,posicionB)”, que devuelve una parte de la cadena, la formada por los caracteres
comprendidos entre la posición A y la posición B-1, teniendo en cuenta que la posición cero hace referencia al
primer carácter de la cadena.
En el ejemplo:
1. Declaramos la variable “mensaje” asignándole como valor una cadena de texto.
2. Declaramos la variable “i” que actuará como contador.
3. Definimos la función “desplaza”, la cual se encargará de realizar varias tareas:
Mediante “window.status” asigna a la barra de estado un mensaje. Este mensaje está dividido en dos
partes a través del método “substring()”. “substring(i,mensaje.length)” toma los caracteres del
mensaje desde “i” hasta la longitud del mensaje menos uno, es decir, hasta el último (porque con
substring se empieza a contar en 0) haciendo así referencia a la parte derecha. “substring(0,i)” hará
referencia a la parte izquierda del mensaje. A medida que “i” aumenta, la parte derecha del texto
disminuye en un carácter y la izquierda aumenta.
La sentencia “if” permite incrementar en uno el valor del contador cuando éste es menor que la
longitud del mensaje. En el momento que la sobrepasa, debemos actualizar su valor a cero.
Para provocar un bucle, utilizamos el método setTimeout(“sentencia”,milisegundos) que ejecuta
la acción especificada tras hacer una pausa de una cantidad concreta de milisegundos. Estamos
llamando a la función dentro de ella misma.
En el cuerpo del documento realizamos la llamada a la función a través del evento “onLoad” en la
etiqueta <BODY>. De esta forma el mensaje desplazándose en la barra de estado aparece desde que
se carga la página.
PRÁCTICA 4
Crea una página que pida al usuario que escriba su nombre. Se realizarán las siguientes tareas:
Si el usuario ha escrito su nombre, mostrará una página dándole la bienvenida de forma
explícita en la barra de estado del navegador, con un mensaje desplazándose.
Si el usuario no escribe nada (o pulsa el botón "cancelar" del prompt), mostrará un cuadro de
alerta con un mensaje.
Mediante Javascript podemos crear la ilusión de movimiento o animación al situar el ratón sobre una imagen.
Para ello necesitaremos dos imágenes:
Imagen original: es la imagen que se carga y se visualiza junto con el resto del texto y objetos al
cargarse el documento.
Imagen de sustitución: es la imagen que reemplaza a la imagen original cuando el ratón se mueve
sobre ella.
Para trabajar con las imágenes debemos conocer antes el objeto “Image”. Se trata de un objeto dependiente
jerárquicamente de “window”, que nos permite crear y manejar imágenes.
Cada objeto “Image” es un objeto por sí mismo y también una propiedad del objeto “document”, de forma
que si creamos una nueva imagen
nombre_imagen=new Image()
estará disponible a través de su nombre, y si insertamos una imagen en el documento mediante la etiqueta
<IMG> de HTML
document.nombre_imagen
Las propiedades de este objeto hacen referencia a los modificadores que pueden acompañar a la etiqueta
<IMG> en HTML:
PROPIEDAD DESCRIPCIÓN
border atributo BORDER de <IMG>
13
name atributo NAME de <IMG>
src atributo SRC de <IMG>
width atributo WIDTH de <IMG>
height atributo HEIGHT de <IMG>
vspace atributo VSPACE de <IMG>
hspace atributo HSPACE de <IMG>
valor booleano que indica si el navegador
complete
ha cargado completamente la imagen
Además, el objeto “document” tiene una propiedad llamada “images”. Esta propiedad es un vector que
contiene todas las imágenes del documento.
Veamos varios ejemplos de imágenes de sustitución.
document.flecha.src=flechaRoja.src
indica que la imagen del documento con nombre “flecha” tomará como dirección aquella que tenga el
objeto imagen “flechaRoja”.
PRÁCTICA 5
Crea una página que cargue la cara de Bart Simpson de forma que, al pasar el ratón sobre la
imagen, Bart saque la lengua y al mismo tiempo aparezca un mensaje en la barra de estado que diga
"¡Qué travieso eres, Bart!". (Utiliza las imágenes "simpson.gif" y "simpson1.gif")
PRÁCTICA 6
Crea una página que ofrezca una lista de destinos posibles en España (Barcelona, Bilbao, Madrid,
Sevilla) y una imagen con el mapa de España. Al pasar el ratón por el elemento de lista "Sevilla", el
mapa cambiará a una foto de la "Plaza de España" de Sevilla.(Utiliza las imágenes "sevilla.gif" y
"mapa.gif")
14
MÚLTIPLES IMÁGENES DE SUSTITUCIÓN – (script13)
Es posible que queramos que una imagen, al situar el cursor del ratón sobre ella, sea reemplazada por una
imagen de sustitución y, a su vez, provoque que otra imagen sea también reemplazada por su correspondiente
imagen de sustitución.
Para ello, incluimos dos acciones diferentes asociadas a un mismo evento que se ejecutarán al mismo tiempo,
separándolas mediante punto y coma (;).
Un banner cíclico es aquel que cambia periódicamente de imagen. Para ello se podría utilizar simplemente un
archivo GIF animado. La ventaja de utilizar Javascript es que nos permite utilizar imágenes JPG y por lo tanto de
mayor calidad.
Para insertar en un documento un banner cíclico necesitamos crear un vector. En Javascript los vectores están
representados por el objeto Array (objeto asociado a tipos de datos).
Un vector está formado por un conjunto de elementos del mismo tipo que se pueden referenciar de forma
individual a través de su índice (lugar que ocupa en el vector, siendo 0 el índice del primer elemento del vector).
Para crear un vector, definimos una nueva variable de tipo Array. Podemos hacerlo de dos formas:
Especificando los valores de los elementos en la definición:
La propiedad de los vectores con la que trabajaremos es “length”, que hace referencia a la longitud del
vector.
15
Si queremos incluir varios banners cíclicos en el documento, sólo necesitamos algunas líneas más en el
código:
Definir un vector y un contador por cada banner cíclico.
Repetir las líneas de la función que aumentan y controlan el valor del contador, y la que especifica la
dirección de la imagen.
PRÁCTICA 7
Crea una página que presente un banner cíclico con tres imágenes y que cambie el color del fondo
cada tres segundos. Utiliza los colores blanco, rosa, rojo, azul, amarillo y verde.
Podemos construir un banner cíclico de forma que cuando el usuario pulse sobre él se enlace con otro
documento, documento que será distinto según la imagen del banner sobre la que haya pulsado.
Para ello definiremos un nuevo vector cuyos elementos serán los destinos a los que serán enviados los
usuarios cuando hagan clic en el banner.
El truco reside en convertir la etiqueta <IMG> en un vínculo cuya dirección será la que reciba al llamar a la
función de Javascript que determina la dirección correspondiente.
Veámoslo con un ejemplo.
Definimos las dos variables de tipo Array que contienen las direcciones de las imágenes y sus destinos
asociados.
El contador en este caso nos servirá para los dos vectores, ya que tienen el mismo número de
elementos.
En la función que permite rotar los banners utilizamos la propiedad “complete” de las imágenes para
comprobar si se ha cargado completamente (por si el usuario no tiene buena conexión y la imagen
tarda más de tres segundo en cargarse).
La función dirección asigna a la ventana como dirección el elemento del vector cuyo índice coincide
con “contador”.
En el vínculo no sabemos cuál es la dirección que se debe cargar, por lo que desde el modificador
HREF. realizamos la llamada a la función correspondiente. Esta es otra forma posible de invocar a
Javascript: asignar a una variable de HTML (en este caso un modificador) el resultado de una o varias
sentencias de Javascript:
HREF=“javascript:sentencia1;sentencia2;...”
12.- MARCOS
Cada marco de un “frameset” es un objeto “frame” en Javascript. Además, cada marco es una propiedad del
objeto “window”. En realidad, internamente Javascript maneja cada “frame” como si fuese una ventana por sí
misma, con lo cual tiene prácticamente las mismas propiedades y métodos que el objeto “window”.
PROPIEDAD DESCRIPCIÓN
document documento visualizado actualmente en el marco
length número de marcos dentro de este marco
name atributo NAME de la etiqueta<FRAME>
location URL del documento del marco
parent frameset que contiene a este marco
top frameset que contiene a este marco
self sinónimo para el marco actual
window sinónimo para el marco actual
frames vector que contiene los marcos hijos de este marco
16
MÉTODO DESCRIPCIÓN
blur aleja el foco del marco especificado
focus traslada el foco al marco especificado
ejecuta una instrucción después de un número de
setTimeout
milisegundos
cancela el tiempo de espera de un script que se inició
clearTimeout
con setTimeout
Podemos referirnos a un marco concreto por su nombre o por el índice de la matriz “frames” que contiene a
dicho marco, como propiedades del top (parent) que lo contiene
Veamos algunos ejemplos sencillos.
Podemos utilizar Javascript para abrir y cerrar ventanas, desplazar la información en ellas, actualizarlas y
posicionarlas, así como crearlas para utilizarlas como paneles de control.
También podremos escribir información en las ventanas, de forma que crearemos páginas web sobre la
marcha, incluso provocar eventos cuando una página se carga.
Para mostrar a los usuarios información adicional, sin perder la que están leyendo actualmente, necesitaremos
por ejemplo crear ventanas nuevas. Es el caso de las páginas que nos muestran una sección de noticias a través
de otra ventana.
Con HTML es posible abrir una ventana nueva de navegador desde un vínculo mediante el modificador
TARGET. Sin embargo, Javascript nos ofrece un mayor control sobre el contenido de la ventana nueva y sus
características.
Para abrir una nueva ventana utilizamos el método “open()” del objeto “window” de la siguiente forma
donde:
“archivo” es la ruta del documento que se cargará en la nueva ventana.
“nombre_ventana” es un nombre que asignamos a la nueva ventana por si es necesario hacer
referencia a la misma más adelante en un vínculo o en otro guión.
“propiedad1, propiedad2,...” hacen referencia a las dimensiones de la ventana, así como a los
distintos elementos que la componen. Irán separadas por comas, sin ningún espacio en blanco.
Pueden ser:
- width=valor: anchura de la ventana en píxeles.
17
- height=valor: altura de la ventana en píxeles.
- toolbar=yes/no: barra de herramientas.
- menubar=yes/no: barra de menús.
- scrollbars=yes/no: barras de desplazamiento.
- status=yes/no: barra de estado.
- location=yes/no: barra de direcciones.
- resizable=yes/no: esquina de redimensión, para cambiar el tamaño de la ventana.
En el caso de las variables booleanas el valor por defecto es “no”.
En lugar de utilizar un solo vínculo, queremos que varios vínculos tengan como objetivo la misma ventana
nueva.
Haciendo clic en cualquiera de los vínculos se abre una ventana nueva, con la imagen correspondiente. Si
volvemos nuevamente a la ventana principal y hacemos clic en otro vínculo, la imagen de la nueva ventana será
sustituida.
En este caso declaramos un parámetro en la función para que la dirección del archivo a cargar se la pasemos
desde los vínculos. De esta forma el valor del parámetro será distinto para cada vínculo.
Además, utilizaremos el método “focus()” del objeto ventana abierta para indicar que la ventana que se acaba
de abrir se coloque en primer plano. El método contrario a “focus()” es “blur()”; este método empuja la ventana
detrás de otras que estén abiertas.
PRÁCTICA 8
Crea una página que muestre dos botones, uno para Granada y otro para Sevilla, de forma que al
pulsarlos se abra una nueva ventana de navegador que muestre la foto de la Alhambra y de la Plaza
de España respectivamente. La nueva ventana debe permitir que el usuario cambie su tamaño.
(Utiliza las imágenes "sevilla.gif" y "alhambra.jpg")
Podemos abrir una nueva ventana desde un vínculo (de texto, de imagen, etc.) de forma que se visualice
aquel punto del documento que nos interese.
Para ello utilizamos el método “scroll” del objeto “window”. En este método debemos especificar el número de
píxeles horizontales y verticales que queremos que se desplace la barra de desplazamiento de la ventana:
window.scroll(píxeles_horizontales,píxeles_verticales)
Debemos tener en cuenta que la ventana debe estar abierta antes de provocar el desplazamiento, por lo que
será necesario utilizar el método “setTimeout” para establecer una pausa.
Podemos enviar información de una ventana a otra por ejemplo para reproducir, a modo de sumario, la
información que introduce el usuario. Para ello necesitamos dos ventanas:
Ventana padre: es la ventana principal; recibirá y visualizará la información introducida en la ventana
hija.
Ventana hija: es la que se abre desde la ventana padre, y en la cual se introduce la información.
Para hacer referencia a la ventana padre desde la ventana hija utilizaremos el objeto “opener”.
18
EJEMPLO – ACTUALIZAR VENTANA – (script23)
En el guión de la ventana padre, abrimos una nueva ventana con una serie de propiedades, e insertamos un
formulario con la caja de texto que mostrará lo que escribamos en el formulario de la ventana hija.
En la ventana hija, el formulario contiene también una caja de texto, además de un botón que en principio no
hace nada. Al abandonar la caja se ejecuta la función, que asigna al valor de la caja de texto del formulario que
se encuentra en el documento desde el cual se abrió esta ventana, el valor de la caja de texto del documento
actual. Una vez hecho esto se cierra la ventana actual (ventana hija).
La palabra clave “this” permite al guión pasar un valor a una función basándose únicamente en el contexto
donde se utiliza.
En el apartado anterior hemos utilizado un archivo HTML para cada ventana. Es posible abrir una nueva
ventana y crear su contenido desde otra, utilizando únicamente un documento HTML.
Para ello incrustamos todo el código correspondiente a un documento HTML dentro de un guión de Javascript.
Podemos crear una página de forma que al cargarse abra una ventana hija que actuará como panel de
control, es decir, que contendrá controles que afectarán a la ventana padre.
Por ejemplo, utilizamos un panel de control con una serie de vínculos que condicionarán la información que se
mostrará en la ventana padre.
PRÁCTICA 9
Crea una página que muestre centrado el texto "PRÁCTICAS 01-08" y que abra un panel de control.
El panel de control contendrá un enlace a cada una de las ocho prácticas realizadas hasta el
momento, de forma que al pasar sobre los enlaces se muestre un mensaje descriptivo de la práctica
en la barra de estado del panel. Al pulsar sobre un enlace, la práctica correspondiente se ejecutará
en la página que se abre inicialmente.
Generalmente, cuando necesitemos reunir información sobre los usuarios tendremos que recurrir a un
formulario.
Una vez que el usuario rellena el formulario, pulsa en botón de envío para mandar la información al servidor
web, donde un programa interpretará los datos y actuará sobre ellos.
A menudo los datos se almacenan en una base de datos para su uso posterior, por lo que será útil asegurarse
de que los datos introducidos por el usuario están ajustados y en el formato adecuado.
Mediante Javascript podemos verificar los datos en la computadora del cliente. A esto es a lo que se llama
“validación del formulario”. Aunque un programa de servidor puede hacer la validación, es mucho más rápido
utilizar Javascript.
Un formulario es un objeto que a su vez contiene otros objetos como botones, casillas de texto, etc. Veamos
la propiedades, métodos y eventos más importantes que se utilizan para describir estos objetos y los procesos
relacionados con ellos.
19
OBJETO form
OBJETO CheckBox
OBJETO Radio
OBJETO Select
20
options: vector que contiene todos los elementos de la lista
Este vector tiene, entre otras, las siguientes propiedades:
index.- índice de la opción en la lista
length.- número de opciones seleccionadas
selected.- indica si la opción está seleccionada
selectedIndex.- índice opción seleccionada actualmente
text.- texto de la opción en la lista
value.- valor de la opción
defaultSelected.- indica si la opción está seleccionada por defecto
blur: fuerza a desactivar la lista
MÉTODOS
focus: fuerza a activar la lista
onFocus: ejecuta la función asociada al activar la lista
EVENTOS onBlur: ejecuta la función asociada al desactivar la lista
onChange: ejecuta la función asociada al cambiar el valor
En ocasiones se le pide a los usuarios que tecleen una nueva contraseña dos veces para asegurarnos de que
no se equivoca al teclearla.
Podemos comunicarle al usuario, por ejemplo mediante ventanas de alerta, si olvidó escribir la contraseña o si
las contraseñas no coinciden.
En el caso de que no se cumplan las condiciones exigidas, el manejador de eventos “onSubmit” actuará en
consecuencia deteniendo el envío del formulario.
Podemos diseñar una lista desplegable de formulario de forma que, al elegir un elemento de la misma,
enlacemos con una página determinada.
En el caso de que el navegador del usuario no tenga soporte para Javascript, podemos utilizar la etiqueta
<NOSCRIPT> para que este usuario visualice botones o enlaces en lugar de la lista.
No olvidemos que para hacer referencia a una opción determinada de la lista debemos emplear su índice
dentro del vector “options”.
21
Por último, el botón para usuarios con navegador sin soporte para Javascript no lo visualizarán el resto de
usuarios. Por lo tanto, el envío del formulario a un programa de servidor sólo se producirá en el caso de que
Javascript no se ejecute.
PRÁCTICA 10
Crea una página que, a través de un formulario, pida al usuario su nombre y dos veces la misma
contraseña. Si el usuario no escribe su nombre o no introduce la primera contraseña, se mostrará un
mensaje de alerta explicativo. Si las contraseñas no coinciden, también se mostrará un mensaje de
alerta, se seleccionará el texto de la primera y se borrará lo que el usuario escribió en la segunda.
PRÁCTICA 11
Crea una página que contenga un menú desplegable. Los elementos del menú serán todas las
prácticas realizadas hasta el momento, de forma que al seleccionar una enlace con el
correspondiente ejercicio. Si el usuario selecciona la práctica 10, antes de cargarse la página elegida
aparecerá el mensaje de alerta "¡Ánimo, ya vas por la 10!".
En un formulario, cada objeto de tipo “radio” sólo nos permite marcar una de las opciones. Si ninguna de ellas
está seleccionada por defecto, podemos forzar al usuario a elegir una de ellas antes de enviar el formulario.
function validar(radio){
if(!radio.sexo[0].checked && !radio.sexo[1].checked){
alert(“Especifique el sexo”)
return false}
return true}
Sin embargo, cuando el número de opciones es mayor, el código se complica y resulta más cómodo trabajar
con un bucle.
Una forma de acelerar la carga de las páginas y ofrecer al usuario páginas interactivas es trasladar el proceso
del lado del servidor al cliente. Es decir, consiste en actualizar los elementos de la página en el navegador del
usuario en lugar de en el servidor web.
Por ejemplo, podemos visualizar la hora y fecha locales, personalizar un saludo según el momento del día, etc.
Para ello trabajaremos con fechas y horas utilizando una serie de métodos del objeto “ Date”. Este objeto
contiene la fecha actual del sistema y algunos de sus métodos asociados son los siguientes:
22
Fecha en milisegundos
setDate( ) Establece el día
desde 1 de enero de 1970
setFullYear( ) Establece el año Fecha en milisegundos
setHours( ) Establece la hora Fecha en milisegundos
setMinutes( ) Establece los minutos Fecha en milisegundos
setMonth( ) Establece el mes Fecha en milisegundos
setSeconds( ) Establece los segundos Fecha en milisegundos
toGMTString( )
Greenwich Mean Time
Fecha GMT y hora en formato cadena día, dd mmm yyyy hh:mm:ss
(hora de Greenwich)
Las funciones de fecha y hora solamente devuelven números. Si queremos mostrar en el documento la fecha
actual utilizando el nombre de los días de la semana y los meses del año tendremos que definir nuevos vectores
que contengan esos elementos.
Según la hora del día, el día de la semana, el mes del año, etc., en que nos encontremos podemos saludar al
usuario con un mensaje adecuado al momento.
Por ejemplo podemos dar la bienvenida al usuario con un saludo distinto según la hora del día
PRÁCTICA 12
Crea una página que muestre un mensaje al usuario indicándole si es fin de de semana (sábado o
domingo) o día laborable (de lunes a viernes).
PRÁCTICA 13
Utilizando los métodos de Date, crea una página que muestre un reloj con el formato hh:mm:ss.
23
Una cookie no es más que un fichero de texto guardado en el disco duro del usuario, donde el programador de
Javascript puede almacenar información.
Es una pieza única de información que un servidor web envía al navegador que lo visita y que ambos
comparten cada vez que se encuentran. El servidor remoto guarda su parte de la cookie y la información que
contiene sobre la computadora visitante, y ésta hace lo mismo a través del navegador guardando un archivo de
texto.
Este archivo siempre incluye la dirección del servidor que lo envió. De esta forma, cuando el usuario regrese
al servidor que le pasó una cookie particular, el servidor podrá retirar la información almacenada en la cookie
que ambas partes intercambiaron.
Las cookies se guardan en:
UNIDAD:\Documents and Settings\"usuario”\Cookies si utilizamos IExplorer en Windows 2000.
UNIDAD:\Archivos de Programa\Netscape\Users\"usuario”\cookies.txt si trabajamos con Netscape en
Windows 2000.
Una cookie no sirve para obtener información sobre el usuario, ni para revisar el disco duro, ni para transmitir
virus a las computadoras. Nos puede servir por ejemplo para conocer el número de veces que se ha accedido a
nuestra página desde una computadora, para almacenar el nombre y contraseña del visitante, etc.
Por otra parte, debemos tener en cuenta que:
Un cliente no puede memorizar más de 300 cookies.
El tamaño máximo de cada cookie es de 4 KB.
El cliente no podrá guardar más de 20 cookies por servidor.
Una cookie es un elemento de una lista que se guarda en el ordenador del visitante. Cada cookie de la lista
será una cadena de texto con el siguiente formato:
nombre=valor;expires=fecha_GMT_caducidad;path=ruta;domain=dominio
Un servidor sólo tendrá acceso a sus propias cookies. Es decir, no podrá leer las cookies que hayan sido
establecidas por otro servidor. Si nuestro servidor sólo establece una cookie utilizaremos el siguiente guión para
mostrar su valor:
<SCRIPT LANGUAGE=JAVASCRIPT>
if(document.cookie != “”)
document.write(“El valor de la cookie es ” + document.cookie.split(“=”)[1])
24
</SCRIPT>
En el caso de que nuestro servidor establezca varias cookies y queramos mostrarlas todas, tendremos que
recurrir a un bucle “for”.
Para borrar una cookie establecemos su caducidad en una fecha del pasado y el navegador la borrará
automáticamente al cerrar la sesión.
Antes de borrarlas podemos preguntar al usuario si desea borrar las cookies o no.
Podemos usar las cookies para almacenar el número de veces que ha accedido a una página un usuario
determinado. No debemos confundir esto con los contadores de visitas totales a una página.
Simplemente debemos buscar la cookie que cuenta el número de visitas, mostrarla después de incrementar
en uno su valor y volver a establecer la cookie con su nuevo valor.
PRÁCTICA 14
Crea la página índice de un sitio web. Esta página mostrará el texto "Entrar..." que será un vínculo
a la primera página del sitio web. Además, si el usuario ha visitado antes el sitio web, le
mostraremos cuántas veces lo ha hecho y la fecha correspondiente a la última visita. Si es la primera
visita que realiza, el mensaje que le mostraremos será "Ha encontrado el sitio web adecuado".
PRÁCTICA 15
Crea una página que muestre un formulario de solicitud de coche como el siguiente
25
El formulario no se enviará, y mostrará el correspondiente mensaje de alerta, si:
El usuario no especifica la dirección de correo electrónico.
El usuario no elige un color.
El usuario no elige el número de puertas.
El usuario elige Descapotable y cuatro puertas (el coche descapotable sólo está disponible en
dos puertas).
Además, si el usuario elige el coche Descapotable, automáticamente se seleccionará la opción de
dos puertas.
PRÁCTICA 16
PRÁCTICA 17
Crea una página que muestre una caja de texto, indicando al usuario que escriba su nombre y
pulse intro. Cuando haga lo que se le indica, comprobaremos si el usuario está registrado o no en
una lista predeterminada de usuarios. Tanto si está registrado como si no, se abrirá una nueva
ventana con el mensaje correspondiente (el contenido de la ventana no será un archivo).
PRÁCTICA 18
Crea una página que muestre un cuestionario como el que aparece en la siguiente imagen
26
Cuando el usuario pulse el botón para averiguar los aciertos que ha conseguido, aparecerá una
ventana de alerta con el mensaje "Acertaste x de 5 preguntas".
27