Libro Javascript 40 Ejercicios Tutorizados
Libro Javascript 40 Ejercicios Tutorizados
___________________________________________
INDICE
Pag 1
JAVASCRIPT.___________________________________________
Tema 2. ARRAYS
Pag 2
JAVASCRIPT.___________________________________________
El lenguaje HTML permite dotar las páginas Web de una atractiva información visual,
no obstante le falta cierto grado de interactividad para el usuario, es decir, en la mayoría
de casos, una página Web es un mero escaparate ( más o menos atractivo ). Para dotar
una página Web de más interactividad podemos insertar por ejemplo, applets de Java;
un applet de Java es una mini aplicación construida en este lenguaje.
Para que un navegador reconozca las sentencias codificadas en JavaScript han sido
introducidas dos nuevas etiquetas: <SCRIPT> i </SCRIPT>. Como podéis suponer, el
código del programa irá entre estas dos etiquetas; junto con la etiqueta <SCRIPT>,
podéis poner el atributo LANGUAGE, que especifica el lenguaje que utilizará el
SCRIPT:
<SCRIPT LANGUAGE=”JavaScript”>
• Antes de empezar.
Pag 3
JAVASCRIPT.___________________________________________
Esto significa que una vez cargado por el navegador, las líneas del programa se van
leyendo y ejecutando una a una en la máquina que ha cargado la página. No obstante
cabe decir que no todos los navegadores ( especialmente los más antiguos ) pueden
interpretar JavaScript, por tanto, es una buena idea cerrar las sentencias JavaScript entre
las etiquetas <!- y ->. Los navegadores más actuales saben buscar las sentencias
JavaScript dentro del texto que se encuentra entre estas etiquetas y ejecutarlo, mientras
que los navegadores que no soportan JavaScript, únicamente interpretan estas líneas
como comentarios del autor.
Lenguaje JavaScript.
2. Variables.
A=5;
Texto es una posición de memoria (de hecho son más), donde se guardará la secuencia
de caracteres Hola, Buenos Días.
programación interpretado, cada línea del programa es leída, traducida a lenguaje máquina y ejecutada.
Evidentemente, esto requiere un programa activo en la memoria, que realice todo el proceso: leer, traducir
e interpretar.
Pag 4
JAVASCRIPT.___________________________________________
Para terminar el tema de las variables, debemos destacar la gran flexibilidad que ofrece
JavaScript, para el manejo de distintos tipos de datos. Es corriente que lenguajes de
programación más potentes que JavaScript, incorporen distintas funciones para pasar
datos de un tipo a otro; por ejemplo, un valor entero a cadena de caracteres. Esta
complejidad no está presente en JavaScript puesto que la conversión entre distintos
tipos se hace de manera automática ( esto debe tener su precio, sobretodo tratándose de
cuestiones de rendimiento y memoria, pero como ya hemos indicado, JavaScript no está
pensado para programadores, sino para diseñadores de páginas Web, y no se trata de
complicarles demasiado la vida). Por ejemplo, sentencias como las que siguen a
continuación, que no serían válidas en lenguaje C, Pascal, o el mismo Java, JavaScript
las entiende perfectamente.
Esta última instrucción, convertirá Vartotal en una variable tipo cadena (string) que
contendrá la secuencia de caracteres (no el número) “1010”. Si hubiésemos puesto:
VarTotal sería una variable numérica que contendría el valor 20. Al operar con dos
variables del mismo tipo, la variable de la izquierda del igual, coge el tipo de la primera
variable, la de la derecha del igual.
Cuidado con esto:
Varnúmero = 10;
VarTexto = “Hola”;
VarTotal = Varnúmero + VarTexto;
• Los comentarios:
También podéis utilizar los comentarios para poner algunas notas referentes al autor del
programa.
Pag 5
JAVASCRIPT.___________________________________________
JavaScript permite dos formas de comentario: comentarios de una línea, precedidos por
//
/* Este comentario
tiene
más de una línea */
Para terminar con los comentarios, se recomienda encerrar el código JavaScript entre
los comentarios HTML <!-- y --> de manera que los navegadores que no soporten
sentencias JavaScript las vean como comentarios. Los navegadores que soportan
JavaScript saben encontrar este código dentro de los comentarios. Así pues se
recomienda dejar el código como sigue a continuación:
<SCRIPT>
<!-- Código JavaScript
..........
//-->
</SCRIPT>
Pag 6
JAVASCRIPT.___________________________________________
• El primer programa.
Ejemplo 1.
<HTML>
<HEAD>
<TITLE> Prueba de JavaScript </TITLE>
</HEAD>
<BODY>
<h1>Página de Prueba</h1>
<BR>
<BR>
<SCRIPT>
<!--
// Primer programa. Sólo escribe mensajes
<BR>
<BR>
<H1>Final</H1>
<HR>
<HR>
</BODY>
</HTML>
<SCRIPT>
<!--
// Primer programa. Sólo escribe mensajes
var Texto1 = “Hola,esto es un mensaje “ // Especificar el texto para el Link.
Pag 7
JAVASCRIPT.___________________________________________
document.writeln(Texto1);
document.writeln("Y esto otro mensaje...");
//-->
</SCRIPT>
Ejemplo 3.
<SCRIPT>
<!--
// Programa.
document.writeln(Texto)
//-->
</SCRIPT>
• Funciones.
Una función es un conjunto de sentencias (subprograma) con entidad própia que hace
algún trabajo en concreto. Una función se define de la siguiente forma:
Pag 8
JAVASCRIPT.___________________________________________
Antes de ver un ejemplo aclarando las funciones, sólo indicar que éstas casi siempre se
definen dentro de la sección <HEAD> </HEAD>.
Ejemplo 4.
<HTML>
<HEAD>
<TITLE> Prueba de JavaScript </TITLE>
<SCRIPT>
<!--
/* Función para crear un enlace.
Parámetros
Enlace = Texto con el URL del Enlace, observad que hemos utilizado la unidad
C: si se quiere enlazar a una dirección de internet sólo se tiene que sustituir por
HTTP:
Texto = Texto con el rótulo para el Enlace
*/
function Hiperenlace(Texto)
{
document.writeln(Texto);
}
//-->
</SCRIPT>
</HEAD>
<BODY>
<h1>Página de Prueba</h1>
<BR>
<BR>
<SCRIPT>
<!--
// Programa que muestra el texto repetido asociado a la función.
Hiperenlace(“Primer hola");
Hiperenlace("Segundo hola");
Hiperenlace("Tercer hola");
//-->
Pag 9
JAVASCRIPT.___________________________________________
</SCRIPT>
<BR>
<BR>
<H1>Final</H1>
<HR>
<HR>
</BODY>
</HTML>
Ver a continuación la función siguiente, que sirve para definir una lista de tres
elementos. Guardar el ejercicio como ej5.htm
Ejemplo 5.
Aquí se utilizan las etiquetas de las listas, en el curso html del composer las ponía el
editor directamente las listas desordenadas y ordenada, pero realmente lo que hace es
poner las etiquetas:
<SCRIPT>
<!--
/* Función para crear una lista de tres elementos
Parámetros:
L1, L2, L3 : Texto para los elementos de la lista.
Pag 10
JAVASCRIPT.___________________________________________
*/
<HTML>
<HEAD>
<TITLE> Prueba de JavaScript </TITLE>
<SCRIPT>
<!--
/* Función para crear una lista de tres elementos
Parámetros:
L1, L2, L3 : Texto para los elementos de la lista.
*/
</HEAD>
<BODY>
<h1>Página de Prueba</h1>
<BR>
<BR>
<SCRIPT>
<!--
Hacer_Lista("Primer hola","Segundo hola","Tercer hola");
Pag 11
JAVASCRIPT.___________________________________________
//-->
</SCRIPT>
<BR>
<BR>
<H1>Final</H1>
<HR>
<HR>
</BODY>
</HTML>
Objetos.
Llegado este punto, ya estáis preparados para entender que es un objeto. No haré una
definición exhaustiva y completa de que es un objeto, ni entreré en la definición de
clases, herencia, métodos dinámicos, etc. No es estrictamente necesario que se
entiendan estos conceptos para trabajar con objetos dentro de JavaScript. Si alguna vez
os decidis a aprender C++ o Java, entonces si que tendréis que enterder que es un objeto
y todo eso que conlleva la programación orientada al objeto.
Para hacer las cosas bién hechas, tendríamos que definir unas cuantas funciones: una
para dibujar el cuadrado, otra para desplazarlo horizontalmente, otra para desplazarlo
verticalmente, otra para hacerlo girar. Cada una de estas funciones tendría que recibir
los parámetros adecuados; por ejemplo la función dibujar la podríamos definir de la
siguiente forma:
Pag 12
JAVASCRIPT.___________________________________________
No obstante, programando así, las variables utilizadas para definir el cuadrado no tienen
ninguna relación entre ellas ( exceptuando la relación que ha establecido el programador
en su cabeza ). Dicho de otro modo: Color, Lado, X yY, son cuatro variables que nos
pueden definir un cuadrado, pero entre ellas no existe nada que permita verlas como
partes características o propiedades de un cuadrado. Lo mismo sucede con las distintas
funciones que definen el comportamiento de un cuadrado. Además, cada una de las
funciones requiere una serie de parámetros para poder actuar correctamente.
• Propiedades.
Clase Cuadrado
{
Propiedad Lado;
Propiedad Color;
Propiedad Coordenada_X;
Propiedad Coordenada_Y;
}
Pag 13
JAVASCRIPT.___________________________________________
Debéis tener en cuenta que aquí hemos definido cómo debe ser, qué características
definen un objeto tipo Cuadrado ( en lenguaje OOP esto es definir una clase, en
JavaScript esto es totalmente transparente ). Para definir un objeto de la clase cuadrado
se necesita una función ( método )especial, llamada constructor en OOP.
Normalmente, esta función sirve para dar valores a las variables (propiedades) del
objeto.
Q1.Color = Verde;
Q1.Lado = 10;
• Métodos.
Queda por determinar el comportamiento del objeto cuadrado. Acciones tales como
movimiento, etc... son definidos también en la declaración del objeto (clase). Las partes
del objeto que definen su comportamiento se llaman métodos. De hecho, un método es
una función, pero una función asociada al objeto. Ver la definición de objeto ( clase ):
Clase Cuadrado
{
Propiedad Color;
Propiedad Lado;
Pag 14
JAVASCRIPT.___________________________________________
Propiedad Coordenada_X;
Propiedad Coordenada_Y;
Método Movimiento_Vertical(Nueva_Y);
Método Movimiento_Horizontal(Nueva_X);
Método Girar(Ángulo);
}
Método Cuadrado.Movimiento_Vertical(Nueva_Y);
{
….. // Código de la función
}
MétodoCuadrado.Movimiento_Horizontal(Nueva_X);
{
….. // Código de la función
}
Método Cuadrado.Girar(Nuevo_Ángulo);
{
….. // Código de la función
}
Los métodos que definen el comportamiento del objeto, aquí también quedan integrados
dentro del objeto.
Objetos de JavaScript.
Pag 15
JAVASCRIPT.___________________________________________
La jerarquía ( jerarquía significa que las clases que están por debajo, son derivadas de
algún objeto de clase superior. De este modo, el objeto Documento estará definido
dentro de un objeto Window ) de los objetos incorporados es la siguiente:
Objeto Window.
Este objeto es el que se encuentra en el nivel más alto de la jerarquía. Una de las
propiedades del objeto Window es status, el cual permite cambiar el mensaje de la
barra de estado del navegador que carga la página.
El método Confirm, abre una ventana mostrando un mensaje con los botones OK y
Cancel. Dependiendo del botón que pulse el usuario, se podrá escoger que acción se
debe ejecutar. Confirm es una función que devuelve un valor que podemos guardar en
una variable Booleana.
Objeto Documento.
De este Objeto ya habéis utilizado un método, el método write(), que sirve para escribir
de forma directa en una página.
Pag 16
JAVASCRIPT.___________________________________________
Propiedades del objeto documento; las propiedades hacen referencia a las características
que definen un objeto.
Dejaremos para más adelante el resto de objetos incorporados de JavaScript para ver
seguidamente, cómo debe definir un objeto un usuario. Tomaremos la función
Hiperenlace como punto de partida. Como recordaréis, utilizábamos esta función para
escribir un texto en el documento. Esta función necesitaba un parámetro: Texto.
• Creación de un objeto.
nombre_constructor es el nombre del la función que sirve para definir las propiedades y
los métodos del objeto que crea. Para definir una propiedad utilizaremos
this.nombre_propiedad.
Así pues, para definir un constructor para Objetos Hiperenlace podríamos hacer:
function HiperEnllace(Texto)
Pag 17
JAVASCRIPT.___________________________________________
this.Texto = Texto;
}
Nuevo_Enlace es un objeto HiperEnlace. Insisto en this, significa objeto que invoca, así
en el ejemplo anterior this.Enlace es la propiedad Enlace del objeto Nuevo_Enlace. Al
definir un objeto nuevo, por ejemplo:
• Definición de métodos.
this.Nombre_del_Método = Nombre_Función;
this.Mostrar_Enlace = Escribe_Enlace;
function Escribe_Enlace()
{
documento.write( this.Texto);
}
Pag 18
JAVASCRIPT.___________________________________________
Las sentencias this.Text, indican que se utilitzarà el valor de las propiedad Texto del
objeto que invoque la función mediante el método Mostrar_Enlace.
Nuevo_Enlace.Mostrar_Enlace();
<HTML>
<HEAD>
<TITLE> Prueba de JavaScript </TITLE>
<SCRIPT>
<!--
/* Función para crear un enlace.
Parámetros
Enlace = Texto con el nombre del Enlace
Texto = Texto con el título para el enlace
*/
function HiperEnlace(Texto)
{
// Función para escribir en Enlace. Para utilizar las propiedades de el objeto que invoca
al método se
// utiliza this.nombre_propiedad.
function Escribe_Enlace()
{
document.write( this.Texto );
}
//-->
Pag 19
JAVASCRIPT.___________________________________________
</SCRIPT>
</HEAD>
<BODY>
<h1>Página de Prueba</h1>
<BR>
<BR>
<SCRIPT>
<!--
// Programa.
// Escribir Enlace;
Nuevo_Enlace.Mostrar_Enlace();
document.write("<BR>");
document.write("<BR>");
<BR>
<BR>
<H1>Final</H1>
<HR>
<HR>
</BODY>
</HTML>
Pag 20
JAVASCRIPT.___________________________________________
Las etiquetas que definen el tamaño de texto, color,fuente en html son las
siguientes/
Ejemplo 7.
<HTML>
<HEAD>
<TITLE> Prueba de JavaScript </TITLE>
<SCRIPT>
<!--
/* Función para definir el objeto,
método constructor*/
function Texto(Men,Fuente,Tamano,Color)
{
this.Mensaje=Men;
this.Fuente = Fuente;
this.Tamano= Tamano;
this.Color = Color;
this.Escribe = Esc;
};
function Esc()
{
document.write("<font face="+this.Fuente+" color="+this.Color+"
size="+this.Tamano+"/>"+this.Mensaje+"</font>");
document.write("<BR>"); // Para hacer un salto de línea.
};
//-->
</SCRIPT>
</HEAD>
<BODY>
<h1>Página de Prueba</h1>
<BR>
Pag 21
JAVASCRIPT.___________________________________________
<BR>
<SCRIPT>
<!--
// Programa. De escribir texto
Texto1 = new Texto("Esto es un Texto","Times New Roman","10","00FF00");
Texto2 = new Texto("Esto es otro Texto","Arial","16","00FF00");
Texto1.Mensaje="Hola, cómo estáis?"; // Cambiar el mensaje a Texto1
Texto1.Escribe();
Texto1.Color="FF0000";// Cambiar el color a Texto1
Texto1.Escribe();
Texto2.Escribe();
//-->
</SCRIPT>
<BR>
<BR>
<H1>Final</H1>
<HR>
<HR>
</BODY>
</HTML>
De aquí podemos extraer una conclusión lógica, saber programar no significa, ni mucho
menos, conocer un determinado lenguaje de programación; saber programar significa
saber aplicar los tipos de datos adecuados, y implementar la secuencia de instrucciones
convenientes para gestionar los datos de forma óptima. Una vez definido el programa en
pseudocódigo, traducirlo a un determinado lenguaje, es relativamente fácil. De ello
podemos sacar otra concLlusión lógica.
• Instrucciones condicionales.
Hasta el momento todos los programas que hemos hecho estaban compuestos por
grupos de instrucciones que se ejecutaban una tras otra; es lo que en programación se
conoce como estructura secuencial. No obstante hay casos en los que es necesario
encaminar el código del programa hacia la ejecución de una o más sentencias, cuando se
da una situación determinada. Estableciendo una analogía con una situación real, como
por ejemplo hacer una tortilla, haremos la tortilla si hay huevos, es decir:
Pag 22
JAVASCRIPT.___________________________________________
Respuesta=Obtener_Datos_Usuario();
Si Respuesta=”S” Entonces // Condición
mostrar_Página_Lista_Última_Semana;//(Acción que se ejecuta si se cumple
la condición
if (condición)
sentencia;
Si se debe ejecutar más de una sentencia se cierra todo el bloque entre llaves.
if (condición)
{
sentencia1;
sentencia2;
.
.
sentencian;
}
Cogemos por ejemplo, el código de la función Esc() ( método del objeto Texto) que
habíamos hecho para escribir con sus correspondientes atributos.
function Esc()
{
documento.write("<font face= "+ this.Fuente + " Color= " + this.Color + Size=
"+ this.Tamano+">" + this.Mensaje + "</font>");
Pag 23
JAVASCRIPT.___________________________________________
Esta función escribe un mensaje y salta una línea. Es posible que alguna vez, después de
escribir un texto, no queráis saltar una línea; para solucionar esto, hay dos soluciones:
definir otra función sin el código documento.write(“<Br>”), o bien utilizar la
instrucción condicional if. Ver el siguiente código:
Ejemplo 8.
function Esc(Saltar)
{
document.write("<font face=" + this.Fuente + " Color=" + this.Color+
"Size="+this.Tamaño+">" + this.Mensaje + "</font>");
if (Saltar= = “S”)
document.write("<Br>"); // Para hacer un salto de línea.
}
Texto.Escribe(“S”);
Y si no se quiere saltar,
Texto.Escribe(“N”);
== operador de igualdad.
!= operador de diferencia.
< operador menor que
> operador mayorque
<= operador menor igual
que
>= operadormayor igual
que
• Instrucción if…else…
Pag 24
JAVASCRIPT.___________________________________________
Esta instrucción permite evaluar una condición; si se cumple, se ejecuta el código que
sigue a if; si no se cumple, ejecuta el código que sigue a else. Sirve para simular
situaciones del tipo “si sucede esto tal, si no sucede cual ”. Por ejemplo, supongamos
que disponemos de los huevos necesarios para hacer la tortilla, entonces, quizás la
querramos de patatas, pero si no disponemos de patatas, deberemos hacerla a la
francesa. Esquematizando con logaritmos:
Si disponemos de patatas
hacer tortilla de patatas;
Si no
hacer tortilla a la francesa (o huevos fritos);
.
Respuesta=Escoger_Material_En_Ver();
Si (Respuesta = “Todo”) Entonces
Mostrar_Todo(); // Función donde se carga la primera página de la serie para
verlo todo
Si no
Enlazar_con_SóloLibros.Html;// Función donde se carga la primera página de
la serie //libros.
function Escribe_Enlace()
{
document.write(“<A href=”http://”+this.Enlace+”>” + this.Texto + “</A>”;
}
Esta función sirve para escribir enlaces hacia otra página Web href=http://. En este caso,
para darle más utilidades a la función, la construiremos de manera que también permita
establecer enlaces hacia correo electrónico. El atributo para enviar correo electrónico es
MailTo:. Una vez esté invocada la función, utilizaremos un parámetro para indicarle que
tipo de enlace debe crear.
Ejemplo 9.
function Escribe_Enlace(Tipo_Enlace)
{
if (Tipo_Enlace == "correo")
document.write("<A href=MailTo:" + this.Enlace + ">" + this.Texto + "</A>");
else
document.write("<A href=http://" + this.Enlace + ">" + this.Texto + "</A>");
}
Pag 25
JAVASCRIPT.___________________________________________
Nuevo_Enlace.Mostrar_Enlace("correo");
Otro_Enlace.Mostrar_Enlace("web");
• Operadores lógicos.
Operador lógico Y.
Hay situaciones en las cuales no basta comprobar una sola condición. Para evaluar más
de una condición a la vez, podéis utilizar los operadores lógicos. Siguiendo con la
tortilla: podemos hacer la tortilla de patatas si disponemos de huevos, y además de
patatas ( sí os gusta con cebolla, también debériis disponer de ella ).
La acción “ Hacer tortilla de patatas ” sólo se puede ejecutar si se cumplen las dos
condiciones; en caso que falle una de las dos, falla toda la expresión condicional, es
decir, no se ejecuta la acción.
Ejemplo:
Pag 26
JAVASCRIPT.___________________________________________
Ejemplo 10.
Implementar las siguientes funciones en una página y guardarla como ej10.htm, utilizar
el ejercicio ej7.htm sustituyendo la función esc() y el cuerpo de la página.(body)
function Esc()
{
var Longitud = this.Mensaje.length; // Long. Del Mensaje
var Mitad= Longitud / 2;
document.write("<Br>");
document.write("<font face=" + this.Fuente + " Color=" + this.Color
+ " Size="+this.Tamaño+">"+ this.Mensaje.substring (Mitad, Longitud) + "</font>");
}
else
document.write("<font face="+this.Fuente+" Color="+this.Color+"
Size="+this.Tamaño+">"+this.Mensaje+"</font>");
Observación.
Ver el código anterior y comprobar como hemos dejado un espacio entre las
propiedades y los atributos. Debajo lo tenéis indicado por el guión:
Debéis hacerlo así, pues de lo contrario, al sustituir por los valores this.fuente quedaría:
en vez de
Pag 27
JAVASCRIPT.___________________________________________
Texto1.Tamaño="3";
Texto1.Escribe(); // Escribe en una línea ya que Tamaño de la fuente no es mayor
igual que 5
Texto1.Tamaño="6";
Texto1.Escribe(); // Escribe en dos líneas ya que Longitud > 15 y además Tamaño
de la Fuente // >=5
Operador lógico es O.
Operador Y (&&)
Pag 28
JAVASCRIPT.___________________________________________
Sirve para negar una condición, y se exprese con el caracter !. Poe ejemplo:
• Estructuras Repetitivas.
Estructura for
Estructura for..in
Estructura while.
for(i=1;i<=10;i++)
{
sentencias;
}
En este caso:
Observar su funcionamiento:
Pag 29
JAVASCRIPT.___________________________________________
Para ver un ejemplo rápido, modificaremos la función Esc() del método Escribe para
que escriba un texto 5 veces. Una opción sería: El siguiente código muestra documento
pero es document.
function Esc()
{
documento.write("<font face="+this.Fuente+" Color="+this.Color+"
Size="+this.Tamaño+">"+this.Mensaje+"</font>");
documento.write("<BR>"); // Para hacer un salto de línea.
Ejemplo11.
function Esc()
{
var i=0;
for (i=1; i<= 5; i++)
{
documento.write("<font face="+this.Fuente+" Color="+this.Color+"
Size="+this.Tamaño+">"+ this.Mensaje+"</font>");
documento.write("<BR>"); // Para hacer un salto de línea.
}
Pag 30
JAVASCRIPT.___________________________________________
function Esc(Veces)
{
var i=0;
Ejercicios.
Utilizar el color olive para el color. No hace falta que pongais el formato rgb.
Del mismo modo que for, sirve para repetir la ejecución de una o más sentencias. No
obstante el control de la repetición es distinto; mientras que en un bucle for un valor
numérico controla la cantidad de repeticiones, en un bucle while no siempre es así. Por
lo general, el bucle while se utiliza para repetir la ejecución de un bloque de código un
número de veces no determinado, y la repetición de las sentencias está controlada por
una condición; mientras se cumpla la condición, se ejecutarán las sentencias del bucle.
mientras(Condición)
{
sentencias;
}
Pag 31
JAVASCRIPT.___________________________________________
En JavaScript sería:
while (Condición)
{
sentencias:
}
Por ejemplo, supongamos que en el programa de la librería queremos hacer una página
que permita hacer un pedido de distintos artículos. La acció pedir_artículo la debéis
poner en una estructura repetitiva, por si el cliente quiere pedir más de un artículo. No
sería demasiado correcto ponerla en una estructura for, pues ello obligaría al cliente a
comprar siempre el mismo número de artículos. Ver el siguiente código:
Con este código se obliga al cliente a entrar siempre 10 artículos. Una posible solución
sería la siguiente:
cantidad=Pedir_número_artículos();
Este código pide primero al cliente la cantidad de artículos que quiere comprar
( línea cantidad = Pedir_número_artículos() ), y después, un bucle for, ejecuta la
función pedir_artículo(), tantas veces como indica la cantidad del cliente. Esta solución
es poco elegante, además, en caso de que el cliente pida tres artículos, y al entrar el
segundo decida comprar uno más, deberá anular el pedido y empezar de nuevo. Ver el
siguiente código:
El bloque de sentencias del bucle while se va repitiendo hasta que el cliente responde
que No quiere más productos. Se pueden entrar uno, o mil.
Pag 32
JAVASCRIPT.___________________________________________
Ver el siguiente ejemplo; construiréis un programa que escriba tantas veces como
quepan en la pantalla (más o menos, y con resolución 640 x 480) un mensaje en el
documento. Utilizaremos el valor 32 para multiplicar el tamaño de la fuente.
Pag 33
JAVASCRIPT.___________________________________________
TEMA 2. Arrays
Definimos Array como “colección de elementos del mismo tipo”. Los arrays son útilies
para gestionar distintos elementos de un mismo tipo, tales como las notas de una clase,
los nombres de los habitantes de un pueblo...
Supongamos que queremos gestionar las notas de una clase de 10 alumnos; con lo que
sabemos hasta el momento, podemos hacer la siguiente declaración:
var nota1, nota2, nota3, nota4, nota5, nota6, nota7, nota8, nota9, nota10;
Para entrar las 10 notas deberíamos utilizar alguna función de entrada 10 veces, una
para cada nota,
leer(nota1);
leer(nota2);
…
…
leer(nota9);
leer(nota10);
Por suerte, existen los arrays, de manera que haremos un programa que hace
exactamente lo mismo pero utilizando arrays. No obstante, primero definiremos qué es
un array. Recordando la definición de variable, hemos dicho que no es más que una
posición de memoria a la cual asignamos un nombre. En el programa anterior, nota1 es
una posición de memoria, nota2 otra, nota3 otra... Al definir un array se dimensiona una
variable, es decir, se le da la capacidad suficiente para albergar N elementos de un tipo
determinado. Así por ejemplo al definir:
notas es una variable que puede contener 10 elementos de tipo entero. Para trabajar con
un elemento de forma individual, lo haremos con la notación índice, así:
leer(notas[1]);
leer(notas[2]);
si queremos entrar las diez notas, podemos utilizar la estructura for de la siguiente
manera:
Pag 34
JAVASCRIPT.___________________________________________
Para gestionar una clase de 150 alumnos, sólo hace falta cambiar el 10 por el 150 en la
declaración de array, y en la parte correspondiente del bucle for.
Llegado este punto debe quedar claro que un array es un grupo de datos del mismo tipo,
que se pueden referenciar de forma individual por su índice.
Crear un array en JavaScript, es parecido a crear un objeto, es decir, se debe definir una
función o método constructor, que será donde se especificará la cantidad de elementos
de que consta el array. Ver el siguiente ejemplo:
function Construir_Array(Num_Elementos)
{
this.length=Num_Elementos; // Dimensionar un array es dar valor a la
propiedad lenght
for (i=1;i <= Num_Elementos; i++) // Inicializa cada elemento a 0
this[i]=0;
}
Este método constructor sería llamado como cualquier otro: pasando el parámetro de
número de elementos.
Ejemplo 13.
<HTML>
<HEAD>
<TITLE> Prueba de JavaScript </TITLE>
<SCRIPT>
<!--
function Hacer_Array(Num_Elementos)
{
var i=0;
this.length=Num_Elementos; // Definir num. elementos
for (i=1;i<=Num_Elementos;i++) // inicializar elementos.
this[i]="";
Pag 35
JAVASCRIPT.___________________________________________
return this;
}
function Escribe_Lista(lista)
{
var i=0;
document.write("<ul>");
for (i=1;i<=lista.length;i++)// desde índice1 a índice máximo, tomado de
propiedad length
{
document.write("<li>"+lista[i]);
}
document.write("</ul>");
}
//-->
</SCRIPT>
</HEAD>
<BODY>
<BR>
<BR>
<SCRIPT>
<!--
Lista = new Hacer_Array(5); // Se llama al constructor y se le pasa el número //de
elementos que debe
//tener el array
Lista[1]="Línea 1"; // Se dan los valores a los elementos del array
Lista[2]="Línea 2";
Lista[3]="Línea 3";
Lista[4]="Línea 4";
Lista[5]="Línea 5";
Escribe_Lista(Lista); // Se llama una función que escribe los valores de cada elemento
del array
//-->
</SCRIPT>
<BR>
<BR>
<HR>
<HR>
</BODY>
</HTML>
Pag 36
JAVASCRIPT.___________________________________________
JavaScript tiene tres objetos incorporados para facilitar el manejo del tipo de datos, son:
el objeto String (cadena de caracteres), el objeto Date (datos) y el objeto Math
(matemáticas).
Objeto string.
Estos objetos sirven para manipular una serie de caracteres. Un objeto de este tipo se
construye inicializando una variable en una cadena de caracteres, cerrada entre comillas
simples o dobles.
var text1=”Hola”;
var text2=’Adiós’;
• Propiedades.
• Métodos.
anchor : Crea una áncora HTML que puede utilizarse como texto para un enlace de
hipertexto. Podéis utilizar este método para crear y visualizar anclas en el
documento, mediante los métodos write o write1n. Puede ser útil para crear una
nueva ventana, en la cual queráis inserir una ancla en algún LINK. Por ejemplo:
ventana=window.open(“”,”Una Ventana”);
ventana.document.write(text.anchor(“Ancla”));
Pag 37
JAVASCRIPT.___________________________________________
var text=”Hola”;
document.write(text.blink());
<BLINK>Hola</BLINK>
bold : muestra el string en negrilla. Tiene el mismo efecto que la etiqueta <B> de
HTML.
var text=”Hola”;
document.write(text.bold());
<B>Hola</B>
var text=”Hola”;
document.write(text.charAt(1));
Escribiría una o.
fixed : visualiz la cadena de caracteres con una fuente fija (fuente fija significa que
todos los caracteres tienen la misma anchura y alzada). Tiene el mismo efecto que la
etiqueta <TT> de HTML.
var text=”Hola”;
document.write(text.fixed());
<TT>Hola</TT>
var text=”Hola”;
document.write(text.fontcolor(“red”));
<FONT COLOR=”red”>Hola</FONT>
Pag 38
JAVASCRIPT.___________________________________________
en notación RGB
<FONT COLOR=”FF0000”>Hola</FONT>
italics : sirve para escribir la cadena de texto en cursiva. Tiene el mismo efecto que
la etiqueta HTML <I>.
Pag 39
JAVASCRIPT.___________________________________________
var text=”Hola”;
document.write(text.italics());
<I>Hola</I>
document.write(text.indexOf(“a”,0); // escribe 3
document.write(text.lastIndexOf(“a”,0); // escribe 11.
small : mostrará la cadena de texto en la fuente más pequeña. Tiene el mismo efecto
que la etiqueta HTML <SMALL>.
var text=”Hola”;
document.write(text.small());
<SMALL>Hola</SMALL>
strike : mostrará la cadena de texto con el efecto de tachado. Tiene el mismo efecto
que la etiqueta HTML <STRIKE>.
var text=”Hola”;
document.write(text.strike());
Pag 40
JAVASCRIPT.___________________________________________
<STRIKE>Hola</STRIKE>
sub : muestra la cadena de texto con subíndice. Tiene el mismo efecto que la etiqueta
HTML <SUB>.
var text=”2”
document.write(“La molécula del agua es :”+”H”+text.sub()+”O”);
sup : muestra la cadena de texto con superíndice. Tiene el mismo efecto que la
etiqueta HTML <SUP>.
var text=”2”;
document.write(“Hipotenusa” + text.sup() + ”= Cateto” + text.sup() + “+
Cateto” + text.sup() );
EJEMPLO:
Pag 41
JAVASCRIPT.___________________________________________
<BODY>
<SCRIPT language = “Javascript”>
<!—
var frase = “Hoy es Lunes”;
document.write (“frase =” + frase + ‘<br>’);
document.write (“Longitud =” + frase.length + ‘<br>’);
document.write (“Negrita =” + frase.bold + ‘<br>’);
document.write (“Negrita =” + frase.bold () + ‘<br>’);
document.write (“Mayúsculas =” + frase.toUpperCase () + ‘<br>’);
//-- >
</SCRIPT>
</BODY>
Objeto Date.
• Propiedades.
No tiene.
• Métodos.
Pag 42
JAVASCRIPT.___________________________________________
.....
Pag 43
JAVASCRIPT.___________________________________________
Eparse : toma como parámetro un string de la forma ( “Nov 21, 1996 ) y devueve el
número de milisegundos desde el 1 de Enero de 1970 hasta la fecha especificada. Se
utiliza, normalmente, para asignar valores a objeto Fecha. Debido a que es un
método estático podéis utilizarlo tanto en objetos ( como hacéis habitualmente ),
como con la propia definición, es decir como a Date.Parse();
Pag 44
JAVASCRIPT.___________________________________________
Día = de 0 a 31.
Horas = de 0 a 23.
Minutos = de 0 a 59.
Segundos = de 0 a 59.
EJEMPLO:
</SCRIPT>
</HEAD>
<BODY>
<SCRIPT language = "Javascript">
<!--
var frase = "Hoy es Lunes";
document.write ("frase =" + frase + '<br>');
document.write ("Longitud =" + frase.length + '<br>');
document.write ("Negrita =" + frase.bold + '<br>');
document.write ("Negrita =" + frase.bold () + '<br>');
document.write ("Mayúsculas =" + frase.toUpperCase () + '<br>');
//-- >
</SCRIPT>
Objeto Math.
• Propiedades.
Todas son volores constantes, por tanto sólo son propiedades de lectura.
E : número E (2,71...);
LN2 : Logaritmo de 2 (0,63..)
LN10 : Logaritmo de 10 ( 2,302...)
LOG2E : Logaritmo en base 2 del número E (1,442)
LOG10E : Logaritmo en base 10 de E (0,434...)
PI : número PI (3,14...)
SQRT1 2 : raíz cuadrada de ½.
SQRT2 : raíz cuadrada de 2.
• Métodos.
Pag 45
JAVASCRIPT.___________________________________________
var N=4.95;
document.write(math.ceil(N)); // escribe 5;
var N=-4.95;
document.write(math.ceil(N)); // escribe -4;
var N=4.95;
document.write(math.floor(N)); escribirá 4
var N=-4.95;
document.write(math.floor(N)); escribirá -5
Document.write(Math.pow(2,4); // escribirá 16
Pag 46
JAVASCRIPT.___________________________________________
• parseFloat
var fTotal=0;
var Tex1=”3.3”, Text2=”4.3”
• parseInt.
var ITotal = 0;
var Text1 = 2, Text2 = 3
ITotal=parseInt(Text1)+parseInt(Text2.Value); // Itotal = 5
ParseInt tiene un sugundo parámetro opcional que sirve para definir con que base
numérica se le pasa el número.
• eval
Evalua un string y devuelve su valor. El String puede ser un valor o una expresión.
Pag 47
JAVASCRIPT.___________________________________________
Objecto form.
Sintaxis HTML.
<FORM
NAME="NombreDelFormulario"
TARGET="NombreDeLaVentana"
ACTION="URLDelServidor"
METHOD=GET | POST
ENCTYPE="encodingType">
…….
</FORM>
ACTION=”mailto:usuario@dominio”.
Pag 48
JAVASCRIPT.___________________________________________
• Propiedades.
Los objetos: botón,caja, contraseña, receptor, validar, incluir, texto, son también
propiedades de un form. Más adelante veréis algunos ejemplos de esta propiedad.
• Propiedades de Elements.
• Métodos.
• Manipuladores de Events.
Objeto Button.
Sintaxis HTML.
<INPUT TYPE=”Button”
NAME=”NombreDelBotón”
VALUE=”TextoDelBotón”>
• Propiedades.
Pag 49
JAVASCRIPT.___________________________________________
• Métodos.
Ejemplo:
El código siguiente hace que se ejecute la acción de pulsar el botón Boton1 cuando se
ejecuta. En el caso de Button, bajará el botón y se ejecutará la función asociada al
Evento Onclick en caso que esté definida.
....
Botón1.Clic();
.....
• Manipuladores de Events.
Ejemplo 16.
La siguiente setencia abre una ventana alert() al pulsar el botón.
<FORM>
<INPUT TYPE=”Button” NAME=”Botón1” VALUE=”Hola”
onClick=”window.alert(‘Hola cómo estáis?’)”>
</FORM>
<HTML>
<HEAD>
<TITLE> Prueba de JavaScript </TITLE>
<SCRIPT>
<!--
function cambiar_color(paramboton)
{
document.bgColor="0000FF";
paramboton.value="AZUL";
}
//-->
Pag 50
JAVASCRIPT.___________________________________________
</SCRIPT>
</HEAD>
<BR>
<BR>
<FORM>
<INPUT TYPE="Button" NAME="Boton1" VALUE="VERDE"
onClick="cambiar_color(Boton1)">
</FORM>
<BR>
<BR>
<HR>
<HR>
</BODY>
</HTML>
Objeto Text.
Sintaxis HTML.
<INPUT
TYPE="text"
NAME="NombreObjeto"
VALUE="TextoPorDefecto"
SIZE=”Valor_Entero”>
• Propiedades.
• Métodos.
Pag 51
JAVASCRIPT.___________________________________________
focus :se invoca este método para forzar a que el campo de texto coja el foco. Sea el
elemento activo.
blur : se invoca este método para forzar a que el campo de texto pierda el foco. Deje
de ser el elemento activo.
select : se invoca este método para seleccionar el contenido del camp de texto.
• Manipuladores de Events.
Ejemplo18.
El contenido de los objetos tipo texto es siempre tipo string (recordar que value es un
objeto tipo string), aunque se tecleen sólo números estos son tratados como caracteres,
esto significa que cuando por ejemplo se entre el 9, no se está entrando el número 9 sinó
que se está entrando el carácter (“9”) que representa al número 9.
<HTML>
<HEAD><TITLE>Pruebas JavaScript. Formularios</TITLE>
</HEAD>
<BODY>
Pag 52
JAVASCRIPT.___________________________________________
<FORM NAME=”F1”>
<INPUT TYPE="Text" NAME="Numero1" SIZE="5">
<INPUT TYPE="Text" NAME="Numero2" SIZE="5">
<BR>
<INPUT TYPE="Text" NAME="Resultado" SIZE="5">
<BR>
<INPUT TYPE="Button" NAME="Boton" VALUE="Suma"
onClick="F1.Resultado.value = F1.Numero1.value + F1.Numero2.value">
</FORM>
</BODY>
</HTML>
En este ejemplo se repetirá el programa anterior pero se tal forma que los números se
sumen. Se incluye la función esnumero() para comprobar que los caracteres entrados en
los campos de texto son dígitos numéricos, en caso que no lo sean se mostrará un
mensaje y se dejará el camp con el valor 0 y activo, observar que esta función se llama
utilitzando el Evento onBlur, es decir cuando el objeto pierde el foco. Para sumar los
valors en la función sum() se ha utilizado la función eval(objeto_string) para convertir
los strings a valores numéricos; observe como se llama esta función, se le pasa todo el
formulario con la sentencia this.form. Ya dentro de la función, observar como para
tratar los objetos texto se tratan como propiedades de formu, formu.Numero1.value
<HTML>
<HEAD><TITLE>Pruebas JavaScript. Formularios</TITLE>
<SCRIPT>
<!--
function sum(formu)
{
var Total=0;
function esnumero(Campo)
{
Pag 53
JAVASCRIPT.___________________________________________
var i=0;
var totnumeros = true // Coger el valor del campo
}
//-->
</SCRIPT>
</HEAD>
<BODY>
<FORM>
<INPUT TYPE="Text" NAME="Numero1" SIZE="5" onBlur="esnumero(this)">
<INPUT TYPE="Text" NAME="Numero2" SIZE="5" onBlur="esnumero(this)">
<BR>
<INPUT TYPE="Text" NAME="Resultat" SIZE="5">
<BR>
<INPUT TYPE="button" NAME="Boto" VALUE="Suma"
onClick="sum(this.form)">
</FORM>
</BODY>
</HTML>
Sugerencia.
Sirve para lo mismo que un objeto tipo texto, permite la edición de más de una línea.
<TEXTAREA
NAME="NombreDelObjeto"
ROWS="Entero"
COLS="Entero"
WRAP="off|virtual|physical"> Texto
Pag 54
JAVASCRIPT.___________________________________________
</TEXTAREA>
• Propiedades.
• Métodos.
focus : se invoca este método para forzar a que el campo de texto coja el foco, sea el
elemento activo.
blur : se invoca este método para forzar a que el campo de texto pierda el foco. Deje
de ser el elemento activo.
select : se invoca este método para seleccionar el contenido del campo de texto.
• Manipuladores de Events.
Objeto Checkbox.
Sintaxis HTML.
<INPUT TYPE=”checkbox”
NAME =”Nombredelacasilla”
VALUE=”ValorQueRetorna”
Pag 55
JAVASCRIPT.___________________________________________
[CHECKED] >”Mensaje”
• Propiedades.
• Métodos.
click : Cuando se invoca este método es com si se hiciera clic sobre el objeto. En el
caso de un objeto Checked, si está activado se desactivará y si no está activado se
activará; también se ejecutará la función asociada al Evento Onclick en caso que esté
definida.
• Manipuladores de Events.
Ejemplo 21.
<HTML>
<HEAD>
<TITLE> Prueba de JavaScript </TITLE>
<SCRIPT>
<!--
function Marcar_Tres_Primeras(Formulario)
{
Formulario.Casilla1.checked=true; // Activa la casilla
Pag 56
JAVASCRIPT.___________________________________________
function Hacer_Alguna_Cosa(casilla)
{
if (casilla.checked == true) // Si casilla activada
window.alert("Hacer Alguna Cosa");
}
//-->
</SCRIPT>
</HEAD>
<BODY>
<FORM>
<INPUT TYPE="Button" NAME="Botón1" VALUE="TRES PRIMERAS"
onClick="Marcar_Tres_Primeras(this.form)"><BR>
<INPUT TYPE="Checkbox" NAME="Casilla1" VALUE="Opción1">Primera Opción
<BR>
<INPUT TYPE="Checkbox" NAME="Casilla2" VALUE="Opción2">Segunda
Opción
<BR>
<INPUT TYPE="Checkbox" NAME="Casilla3" VALUE="Opción3">Tercera Opción
<BR>
<INPUT TYPE="Checkbox" NAME="Casilla4" VALUE="Opción4"
onClick="Hacer_Alguna_Cosa(this)"> Cuarta Opción.
</FORM>
<HR>
<HR>
</BODY>
</HTML>
Radio Object.
Botón de radio. Son los botones circulares que muestran distintas opciones, de las
cuales se debe escoger una.
Sintaxis HTML.
Pag 57
JAVASCRIPT.___________________________________________
NAME = “NombreDelBotón”
VALUE=”ValorObjeto”
[CHECKED] Opcional> Mensaje
• Propiedades.
checked : Tiene el valor true si el botón de radio está marcado, y false si no lo está.
defaultChecqued : Muestra el valor que tiene el objeto por defecto. Devuelve true si
en la definición del objeto con código HTML se ha puesto CHECKED, y false si no
se ha puesto.
name : Nombre del objeto. El definido en NAME=”...” en la definición HTML.
value : Contiene el valor del texto Value de la casilla activada.
• Métodos.
click : al invocar este métodosucede lo mismo que haciendo clic sobre el objeto. En
el caso de un objeto de radio, éste se activará. En caso de que estédefinido se activará
la función asociada al Event Onclick.
• Manipuladores de Events.
Ejemplo 22.
<HTML>
<HEAD>
<TITLE> Prueba de JavaScript </TITLE>
<SCRIPT>
<!--
function conversion(Formulario)
{
if (Formulario.ConversionTexto[0].checked == true)
Formulario.CuadroTexto.value=Formulario.CuadroTexto.value.toUpperCase();
else
if(Formulario.ConversionTexto[1].checked == true)
Pag 58
JAVASCRIPT.___________________________________________
Formulario.CuadroTexto.value=Formulario.CuadroTexto.value.toLowerCase();
}
//-->
</SCRIPT>
</HEAD>
<BODY>
<FORM>
<INPUT TYPE="texto" NAME="CuadroTexto" SIZE="25"><BR>
<INPUT TYPE="radio" NAME="ConversionTexto" VALUE="Maj">Mayúsculas
<BR>
<INPUT TYPE="radio" NAME="ConversionTexto" VALUE="Min">Minúsculas
<BR>
<INPUT TYPE="radio" NAME="ConversionTexto"
VALUE="Igual">SinConversión
<BR>
<INPUT TYPE="button" NAME="Botón" Value="Convertir"
onClick="conversion(this.form)">
</FORM>
<HR>
<HR>
</BODY>
</HTML>
La función conversión(), para referenciar un conjunto de botones de radio los trata del
mismo modo que un array.
Mediante this.form se pasa todo el formulario a la función conversión(). Una vez dentro
de la función, para referenciar el objeto Texto, se debe tratar con una propiedad del
formulario Formulario. Cuadro Texto ( siendo Cuadro Texto el nombre que se le ha
dado al objeto Texto ). La conversión a mayúsculas o minúsculas se hace aplicando los
métodos toUpperCase y toLowerCase de los Objetos String sobre la propiedad value
del objeto de Texto.
Select Object.
Sintaxis HTML.
<SELECT
NAME="Nombre"
[SIZE="número_entero"]
[MULTIPLE]
<OPTION VALUE="valor" [SELECTED]> TextoElemento1
....
<OPTION> TextoElementoN
</SELECT>
Pag 59
JAVASCRIPT.___________________________________________
• Propiedades.
• Métodos.
blur : se invoca este método para obligar a la lista a perder el foco; deje de ser el
objeto activo.
focus : se invoca este método para obligar a la lista a coger el foco; se convierte en
objeto activo.
• Manipuladores de Events.
Ejemplo 23.
Pag 60
JAVASCRIPT.___________________________________________
El documento que sigue contiene dos botones de radio que permiten escoger Montaña o
Playa, dos listas que muestran nombres de playas y montañas, y dos cajas de texto.
Haciendo clic en el botón de radio Montaña, el foco pasará de manera automática a una
lista de selección con posibles destinaciones de Montaña; haciendo clic en el botón de
radio Playa, la lista de destinaciones que recibirá el foco será la sde distintas
destinaciones de Playa. Haciendo clic sobre la lista montaña se activa una función
mostrando en un cuadro de texto el país donde se encuentra la montaña. El otro cuadro
de texto sirve para entrar el nombre de la playa; al salir este cuadro se activa una
función que busca la playa en la lista de playas: en caso de encontrarla, la muestra como
elemento activo de la lista, y en el caso contrario, muestra un cuadro window.alert()
avisando del suceso.
<HTML>
<HEAD><TITLE>Pruebas JavaScrip. Formularios</TITLE>
<SCRIPT>
<!--
// Función que mira el elemento seleccionado de la lista y segun su valor pone el
// nombre de un país en el cuadro de texto Texto
function mostrarpais(lista,Texto)
{
if (lista.selectedIndex == 0)
Texto.value = "Rusia";
if (lista.selectedIndex == 1)
Texto.value = "Suiza";
if (lista.selectedIndex == 2)
Texto.value = "Italia";
if (lista.selectedIndex == 3)
Texto.value = "Chile";
}
Pag 61
JAVASCRIPT.___________________________________________
<FORM NAME="F1">
<SELECT NAME="Playa">
<OPTION> NORMANDÍA
<OPTION> CANCÚN
<OPTION> COPACABANA
</SELECT>
<SELECT NAME="Montana" onChange="mostrarpais(this,F1.Texto)">
<OPTION> URALES
<OPTION> ALPES
<OPTION> APENINOS
<OPTION> ANDES
</SELECT>
<br><br>
<INPUT TYPE="radio" NAME="Escoger" onClick="F1.Playa.foco()">Playa <BR>
<INPUT TYPE="radio" NAME="Escoger" onClick="F1.Montana.foco()">Montana
<BR>
<BR>
<BR>
<INPUT TYPE="Texto" NAME="Texto" SIZE="20">
<BR>
<INPUT TYPE="Texto" NAME="Texto1" SIZE="20"
onChange="BuscarPlaya(this,F1.Playa)">
</FORM>
</BODY>
</HTML>
Las dos líneas que definen los botones de radio activan el método foco() de la lista
correspondiente para que ésta se activedespués de hacer un clic encima del botón (de
hecho se activará al hacer doble clic)
La función BuscarPlaya.
Objeto Window.
Pag 62
JAVASCRIPT.___________________________________________
• Propiedades.
• Métodos.
window.alert(mensaje)
Novaventana = window.open(“Url”,“Nom_Ventana”,”Grup_Elements”);
Pag 63
JAVASCRIPT.___________________________________________
Ejemplo 24.
El ejemplo siguiente únicamente crea una nueva ventana al pulsar el botón Crear
Ventana. La ventana incorpora la barra de herramientas y la barra de estado, las
dimensiones son 100x400. El número de elementos se indica con un solo parámetro
cerrado entre comillas.
<HTML>
Pag 64
JAVASCRIPT.___________________________________________
<SCRIPT>
<!--
function crear_ventana()
{
nueva_ventana=window.open("","Hola","toolbar=1,status=1,heigh=100,width=400");
}
//-->
</SCRIPT>
</HEAD>
<BODY>
<BR>
<FORM>
<INPUT TYPE="button" NAME="Boto" VALUE="Crear Ventana"
onClick="crear_ventana()">
</FORM>
</BODY>
</HTML>
<HTML>
<HEAD>
<TITLE> Prueva de JavaScript </TITLE>
<SCRIPT>
<!--
var i=1; // Se Iniciaizal la variable aquí para que mantinga su valor entre les
diferentes llamadas
// a la función.
function mensaje()
{
if (i%2 == 0) // Si i és divisible por 2
window.status="Pero recordad que el tiempo no espera a nadie"
else
Pag 65
JAVASCRIPT.___________________________________________
//-->
</SCRIPT>
</HEAD>
<BODY onLoad="Timer=setTimeout('mensaje()', 1000)">
<h1>Página de Prueba</h1>
<BR>
<BR>
<FORM NAME="F1">
<INPUT TYPE="Button" NAME="Parar" VALUE="Parar"
onCLick="clearTimeout(Timer)">
</FORM>
<BR>
<BR>
<H1>Final</H1>
<HR>
<HR>
</BODY>
</HTML>
Objeto Location.
• Propiedades.
Pag 66
JAVASCRIPT.___________________________________________
Ejemplo 26.
<HTML>
<HEAD><TITLE>Proves JavaScript. Location</TITLE>
<SCRIPT>
<!--
function crear_ventana(Loc)
{
nf=window.open("","Hola","toolbar=1,status=1,heigh=100,width=400");
nf.document.write("<HTML>");
nf.document.write("<HEAD>");
nf.document.write("<TITLE>Localización</TITLE>");
nf.document.write("</HEAD>");
nf.document.write("<BODY>");
nf.document.write("Hash : "+Loc.hash);
nf.document.write("<BR>Host : "+Loc.host);
nf.document.write("<BR>Hostname : "+Loc.hostname);
nf.document.write("<BR>Href : "+Loc.href);
nf.document.write("<BR>Pathname : "+Loc.pathname);
nf.document.write("<BR>Port : "+Loc.port);
nf.document.write("<BR>Protocolo : "+Loc.protocol);
nf.document.write("</BODY>");
nf.document.write("</HTML>");
nf.document.close();
}
//-->
</SCRIPT>
</HEAD>
<BODY>
<BR>
<FORM>
<INPUT TYPE="button" NAME="Boto" VALUE="Crear Ventana"
onClick="crear_ventana(window.location)">
</FORM>
</BODY>
</HTML>
Pag 67
JAVASCRIPT.___________________________________________
Objeto history.
Es una especie de lista que contiene todos los URL que han sido visitados,. La
información de esta lista está disponible en las barras de botones u opciones de la barra
de menús de muchos navegadores; son las opciones típicas de ir adelante y atrás.
• Propiedades.
• Métodos.
• Manipuladores de events.
No tiene.
Objeto Documento.
Sintaxi HTML.
<BODY
BACKGROUND="ImagenDeFondo"
BGCOLOR="ColorDeFondo"
TEXT="ColorDeTexto"
LINK="ColorLinkNoVisitado"
ALINK="ColorLinkActivo"
VLINK="ColorLinkVisitado" >
</BODY>
• Propiedades.
Pag 68
JAVASCRIPT.___________________________________________
• Métodos.
document.open(mimetype)
• Manipuladores de events.
No tiene.
Ejemplo 27.
<HTML>
<HEAD><TITLE>Prueba JavaScrip.</TITLE>
<SCRIPT>
<!--
//-->
</SCRIPT>
</HEAD>
<BODY>
Pag 69
JAVASCRIPT.___________________________________________
<SCRIPT>
<!--
with (document)
{
bgColor="blue";
fgColor="white";
linkColor="red"
vlinkColor="green";
alinkColor="black";
write("URL de esta página : "+location+"<BR>");
write("URL de la página de donde vienes : "+referrer+"<BR>");
write("El título del documento es : "+title+"<BR>");
write("La fecha en que se modificó por última vez es : "+lastModified+"<BR>");
}
//-->
</SCRIPT>
</BODY>
</HTML>
Objeto Links.
Imagen o texto que identifica un hiperenlace; al hacerle clic encima se carga el elemento
referenciado.
Sintaxis HTML.
Array de Links.
Pag 70
JAVASCRIPT.___________________________________________
document.links[0].
document.links.lenght.
• Métodos.
No tiene.
• Manipuldores de Events.
• Ejemplo 28:
En el ejemplo siguiente hay dos funciones. La función Mostrar(). Sirve para mostrar en
una ventana Alert el contenido ( las referencias ) de todos los Links del documento. Se
utiliza el array links ( propiedad del objeto documento ) para confeccionar la lista y la
propiedad lenght, que determina el número de elementos de la lista. La función estat()
es invocada mediante los métodos onMouseover de los links, y simplemente muestra un
mensaje en la barra de estado informando de donde se cargará el documento apuntado
por el link.
Pag 71
JAVASCRIPT.___________________________________________
<HEAD><TITLE>Pruebas JavaScrip.</TITLE>
<SCRIPT>
<!--
function Mostrar(enlace)
{
var i=0;
var text="";
for (i=0;i<enlace.length;i++)
{
text=text+enlace[i].href+"\n";
}
window.alert(text);
}
function estado(en)
{
if (en.target == "_top")
window.status="Abrirá una nueva ventana";
else
window.status="Abrirá en ventana actual";
}
//-->
</SCRIPT>
</HEAD>
<BODY>
<FORM F1>
<INPUT TYPE="button" VALUE="Muestra Información Links"
onClick="Mostrar(document.links)">
</FORM>
</BODY>
</HTML>
Objeto Anchors.
Pag 72
JAVASCRIPT.___________________________________________
Sintaxis HTML.
HREF : URL identifica el destino del ancla o URL. Si existe este atributo el objeto
ancla es también un objeto Link.
NAME : "NombreAncla" especifica una etiqueta que se convierte en una tarjeta de
hipertexto asequible en el documento actual.
TARGET : "NombreVentana" especifica la ventana donde se cargará el recurso
refernciado por el Link. Este atributo sólo tiene sentido si está definido en el atributo
HREF=URL .
Array de anclas.
Se puede referenciar una ancla mediante el array de anclas del Objeto Documento. El
array de anclas contiene una entrada para cada elemento <A> que aparece en el
documento. Como todos los arrays, para referenciar un elemento se deben utilizar los
índices y, como de costumbre, el primer elemnto tiene índice 0. Así por ejemplo,
para referenciar la primera ancla de un documento podemos utilizar:
document.anchors[0].
document.anchors.length.
document.anchors[1]=”Ancora 1”
• Propiedades.
• Métodos.
No tiene.
• Manipuladores de Events.
Pag 73
JAVASCRIPT.___________________________________________
No tiene.
Objeto Frames.
Los frames o marcos hacen posible que en una misma ventana se puedan visualizar
diversos documentos HTML a la vez. En cada marco que se define en la ventana, se
puede cargar un URL distinto.
Sintaxis HTML.
<FRAMESET
ROWS=”anchodelMarco”
COLS=”LargodelMarco”>
<FRAME SRC=”Localización URL” NAME=”NombreMarco”>
.........
</FRAMESET>
ROWS : ancho en píxels de cada frame o marco horizontal; para cada uno de los
marcos se debe especificar el número de píxels. Por ejemplo, para definir tres marcos
cada uno de los cuales tenga un ancho de 100 píxels, ROWS=”100,100,100”. Es muy
frecuente definir el ancho del último marco con un * para que coja lo que queda de la
ventana, ROWS=”100,100,*”
COLS : ancho en píxels de cada frame o marco vertical; para cada uno de los marcos
se debe especificar el número de píxels. Por ejemplo, para definir tres marcos, cada uno
de los cuales tenga un ancho de 100 píxels, COLS=”100,100,100”. Es muy frecuente
definir el ancho del último marco con un * para que coja lo que queda de la ventana,
COLS=”100,100,*”.
FRAME SRC=”URL” NAME=”Nombre” : Define todos los URL que se cargarán en
los marcos; NAME sirve para nombrar el marco.
• Propiedades.
Frames es también una propiedad de window y esta propiedad es un array que contiene
todos los frames de la ventana. Este array tiene la propiedad length que contiene el
número de frames.
Pag 74
JAVASCRIPT.___________________________________________
• Métodos.
• Manipuladores de events.
No tiene.
Para ejemplos acerca de marcos, ver el tema siguiente, Trabajar con marcos.
Objeto Navigator.
Sirve básicamente para recoger información acerca del navegador que carga el
documento.
• Propiedades.
appCodeName : especifica el código del nombre del navegador.
appName: contiene el nombre del navegador.
appVersion : contiene el número de versión del navegador.
userAgent : contiene información sobre el agente.
Pag 75
JAVASCRIPT.___________________________________________
Se definen objetos que están relacionados con la fecha actual, la ventana del
navegador, etc. Cada objeto tiene por un lado unas propiedades (el color de fondo de
una página por ejemplo) y por el otro lado tiene métodos (funciones que se pueden
realizar con ese objeto). Sobre estos objetos se pueden producir eventos. Los eventos
que se pueden producir en Javascript son:
onBlur: se produce cuando un elemento pierde el foco.
onClick: se produce cuando pinchamos sobre ese elemento.
onChange: se produce cuando el usuario cambia el valor de algún elemento.
onFocus: se produce cuando un elemento coge el foco.
onLoad: se produce al cargar esta página en el navegador.
onMouseOver: se produce cuando pasamos el ratón por encima.
onMouseOut: se produce cuando el ratón salga de ese elemento.
onSelect: se produce cuando seleccionamos un elemento.
onSubmit: se produce cuando pulsamos el botón “Enviar” de un formulario.
onUnload: se produce cuando el usuario abandona una web.
Pag 76
JAVASCRIPT.___________________________________________
Pag 77
JAVASCRIPT.___________________________________________
Pag 78