Completo JavaScript
Completo JavaScript
1. ¿Qué es JavaScript ?
JavaScript ha sido inventado por Netscape, que comenzó a ofrecerlo como parte de su
Navigator v.2.0. El nombre original de JavaScript fue LiveScript. Al ser código
interpretado, JavaScript es más lento que Java, pero en la práctica no suele ser un factor
de importancia.
<SCRIPT
Language="JavaScript"
src ="archivo.js">
<!--
// Aquí irá su código
// -->
</SCRIPT>
Si bien el código JavaScript puede incluirse en cualquier lugar de una página HTML, el
modo de comportarse puede ser diferente. Lo habitual es hacerlo antes del cuerpo del
documento, es decir, antes de la etiqueta <BODY>.
3. Conceptos Generales
JavaScript, diferencia entre mayúsculas y minúsculas, por lo cual habrá que tener mucha
precaución a la hora de escribir las expresiones. Se pueden escribir comentarios: cuando
son de una linea bastará precederlos de "//", cuando son de más de una línea se
escribirán entre "/*" y "*/". Tras cada orden de JavaScript va un ";", cuando son varías
órdenes se pueden agrupar, escribiéndolas entre "{" y "}".
Expresiones JavaScript
Operadores
1. Operadores Aritméticos
- Invierte el signo de un
-a Invierte el signo de un operando.
operando.
2. Operadores de comparación
Operador Descripción
> " Mayor que" devuelve true si el operador de la izquierda es mayor que el de
la derecha.
>= " Mayor o igual que " devuelve true si el operador de la izquierda es mayor o
igual que el de la derecha.
< " Menor que" devuelve true si el operador de la izquierda es menor que el de
la derecha.
3. Operadores Lógicos
Operador Descripción
Variables
Se trata de una palabra sin comillas que se puede utilizar para almacenar valores. Los
nombres asignados a las variables deben comenzar siempre por una letra o un subrayado
bajo (_) y no pueden contener espacios en blanco. Se puede utilizar el parámetro var
antes del nombre de la variable para indicar que se está creando una nueva variable.
-Si fue declarada con "var", devuelve el valor NaN (Not a Number).
Tipos de Datos:
Cadenas Los tipos de datos cadena deben ir delimitados por comillas simples o
dobles.
Objetos Obj = new Object();
Nulos Null
Objetos JavaScript
Cada uno de estos objetos tienen una serie de características, a las que llamaremos
propiedades. Además cada objeto podrá realizar toda una serie de cosas, a las que
llamaremos métodos.
A continuación hay una relación de los objetos que puede manejar JavaScript.
bgColor (color del fondo), fgColor (color del texto), linkColor, alinkColor y
vlinkColor (color de los vínculos), location (la URL del documento),
lastModified (última modificación), title (título de la página), links (enlaces del
documento).
Propiedades
length. Valor numérico que nos indica la longitud en caracteres de la cadena
dada.
prototype. Nos permite asignar nuevas propiedades al objeto String.
Métodos
anchor(nombre). Crea un enlace asignando al atributo NAME el valor de
'nombre'. Este nombre debe estar entre comillas " "
big(). Muestra la cadena de caracteres con una fuente grande.
blink(). Muestra la cadena de texto con un efecto intermitente.
charAt(indice). Devuelve el carácter situado en la posición especificada por
'indice'.
fixed(). Muestra la cadena de caracteres con una fuente proporcional.
fontcolor(color). Cambia el color con el que se muestra la cadena. La variable
color debe ser especificada entre comillas: " ", o bien siguiendo el estilo de
HTML, es decir "#RRGGBB" donde RR, GG, BB son los valores en
hexadecimal para los colores rojo, verde y azul, o bien puede ponerse un
identificador válido de color entre comillas. Algunos de estos identificadores son
"red", "blue", "yellow", "purple", "darkgray", "olive", "salmon", "black",
"white", ...
fontsize(tamaño). Cambia el tamaño con el que se muestra la cadena. Los
tamaños válidos son de 1 (más pequeño) a 7 (más grande).
indexOf(cadena_buscada,indice) Devuelve la posición de la primera ocurrencia
de 'cadena_buscada' dentro de la cadena actual, a partir de la posición dada por
'indice'. Este último argumento es opcional y, si se omite, la busqueda comienza
por el primer carácter de la cadena.
italics(). Muestra la cadena en cursiva.
lastIndexOf(cadena_buscada,indice). Devuelve la posición de la última
ocurrencia de 'cadena_buscada' dentro de la cadena actual, a partir de la posición
dada por 'indice', y buscando hacia atrás. Este último argumento es opcional y, si
se omite, la busqueda comienza por el último carácter de la cadena.
link(URL). Convierte la cadena en un vínculo asignando al atributo HREF el
valor de URL.
small(). Muestra la cadena con una fuente pequeña.
split(separador). Parte la cadena en un array de caracteres. Si el carácter
separador no se encuentra, devuelve un array con un sólo elemento que coincide
con la cadena original. A partir de NS 3, IE 4 (JS 1.2).
strike(). Muestra la cadena de caracteres tachada.
sub(). Muestra la cadena con formato de subíndice.
substring(primer_Indice,segundo_Indice). Devuelve la subcadena que comienza
en la posición 'primer_Indice + 1' y que finaliza en la posición 'segundo_Indice'.
Si 'primer_Indice' es mayor que 'segundo_Indice', empieza por 'segundo_Indice
+ 1' y termina en 'primer_Indice'. Si hacemos las cuentas a partir de 0, entonces
es la cadena que comienza en 'primer_Indice' y termina en 'segundo_Indice - 1'
(o bien 'segundo_Indice' y 'primer_Indice - 1' si el primero es mayor que el
segundo).
sup(). Muestra la cadena con formato de superíndice.
toLowerCase(). Devuelve la cadena en minúsculas.
toUpperCase(). Devuelve la cadena en minúsculas.
Ejemplos:
nombre = "Juan Pérez". Crea la variable nombre y le asigna la cadena "Juan
Pérez".
document.write (nombre.toUpperCase). Escribirá JUAN PÉREZ.
document.write (nombre.charAt(2)). Escribirá "a", es decir, la tercera letra de la
cadena.
Objeto fecha (date):
Hace referencia a la página que se esté visualizando en ese momento. No tiene
propiedades y algunos de sus métodos son:
Métodos
getDate(). Devuelve el día del mes actual como un entero entre 1 y 31.
getDay(). Devuelve el día de la semana actual como un entero entre 0 y 6.
getHours(). Devuelve la hora del día actual como un entero entre 0 y 23.
getMinutes(). Devuelve los minutos de la hora actual como un entero entre 0 y
59.
getMonth(). Devuelve el mes del año actual como un entero entre 0 y 11.
getSeconds(). Devuelve los segundos del minuto actual como un entero entre 0 y
59.
getTime(). Devuelve el tiempo transcurrido en milisegundos desde el 1 de enero
de 1970 hasta el momento actual.
getYear(). Devuelve el año actual como un entero.
setDate(día_mes). Pone el día del mes actual en el objeto Date que estemos
usando.
setDay(día_semana). Pone el día de la semana actual en el objeto Date que
estemos usando.
setHours(horas). Pone la hora del día actual en el objeto Date que estemos
usando.
setMinutes(minutos). Pone los minutos de la hora actual en el objeto Date que
estemos usando.
setMonth(mes). Pone el mes del año actual en el objeto Date que estemos
usando.
setSeconds(segundos). Pone los segundos del minuto actual en el objeto Date
que estemos usando.
setTime(milisegundos). Pone la fecha que dista los milisegundos que le pasemos
del 1 de enero de 1970 en el objeto Date que estemos usando.
setYear(año). Pone el año actual en el objeto Date que estemos usando.
toGMTString(). Devuelve una cadena que usa las convenciones de Internet con
la zona horaria GMT.
Ejemplos:
fecha = new date(). Crea una variable llamada fecha, en la que se almacena la
fecha y hora actual
Ejemplos:
document.write ("Estás viendo la página con una resolución de
"+width+"*"+height+" pixels". Escribirá la resolución.
if (width<700 && height<500) alert ("Estas páginas están optimizadas para una
resolución de 800*600 pixels y tu tienes una configuración inferior. \n Por favor,
cambia tu configuración"). En el caso de que la resolución de la pantalla sea
inferior a 700*500 saldrá una ventana de alerta con el mensaje que hayamos
escrito.
if (width<700 && height<500) location.href="paginapeque.htm" else
location.href="paginagrande.htm". Mostrará una página u otra según que la
resolución sea inferior o mayodr de 700*500.
coches=["BMW","Mercedes","Audi","Volvo"]
Coches es un array de 4 elementos.
Podemos dejar elementos del array vacíos:
ciudades=["Madrid",,"Valladolid"]
ciudades=[,,"Pamplona"]
ciudades=["Madrid","Pamplona",,]
Propiedades
length. Esta propiedad nos dice en cada momento la longitud del array, es decir,
cuántos elementos tiene.
prototype. Nos permite asignar nuevas propiedades al objeto String.
Métodos
join(separador). Une los elementos de las cadenas de caracteres de cada
elemento de un array en un string, separando cada cadena por el separador
especificado.
reverse(). Invierte el orden de los elementos del array.
sort(). Ordena los elementos del array siguiendo el orden lexicográfico.
Este objeto es el contenedor de todos los elementos del formulario. Como ya vimos al
tratar el objeto document, los formularios se agrupan en un array dentro de document.
Cada elemento de este array es un objeto de tipo form.
Propiedades
action. Es una cadena que contiene la URL del parámetro ACTION del form, es
decir, la dirección en la que los datos del formulario serán procesados.
elements. Es un array que contiene todos los elementos del formulario, en el
mismo orden en el que se definen en el documento HTML. Por ejemplo, si en el
formulario hemos puesto, en este orden, una caja de texto, un checkbox y una
lista de selección, la caja de texto será elements[0], el checkbox será elements[1]
y la lista de selección será elements[2].
encoding. Es una cadena que tiene la codificación mime especificada en el
parámetro ENCTYPE del form.
method. Es una cadena que tiene el nombre del método con el que se va a
recibir/procesar la información del formulario (GET/POST).
Métodos
reset(). Resetea el formulario: tiene el mismo efecto que si pulsáramos un botón
de tipo RESET dispuesto en el form.
submit(). Envía el formulario: tiene el mismo efecto que si pulsáramos un botón
de tipo SUBMIT dispuesto en el form.
Propiedades
dafaultValue. Es una cadena que contiene el valor por defecto que se le ha dado
a uno de estos objetos por defecto.
name. Es una cadena que contiene el valor del parámetro NAME.
value. Es una cadena que contiene el valor del parámetro VALUE.
maxlength. Número máximo de caracteres que puede contener el campo de
texto.
Métodos
blur(). Pierde el foco del ratón sobre el objeto especificado.
focus(). Obtiene el foco del ratón sobre el objeto especificado.
select(). Selecciona el texto dentro del objeto dado.
<HTML>
<HEAD>
<title>Ejemplo de JavaScript</title>
</HEAD>
<script LANGUAGE="JavaScript">
<!--
function Mostrar()
{
alert('Su nombre: ' + formulario.nombre.value);
alert('El password: ' + formulario.pass.value);
}
//-->
</script>
<BODY>
<form action="procesa.phtml" name="formulario" id="formulario" method="GET">
Nombre: <input type="text" name="nombre" value="Tu nombre" maxlength="15"><br>
</BODY>
</HTML>
El objeto button
Tenemos tres tipos de botones: un botón genérico, 'button', que no tiene acción
asignada, y dos botones específicos, 'submit' y 'reset'. Estos dos últimos sí que tienen
una acción asignada al ser pulsados: el primero envía el formulario y el segundo limpia
los valores del formulario.
Propiedades
name. Es una cadena que contiene el valor del parámetro NAME.
value. Es una cadena que contiene el valor del parámetro VALUE.
Métodos
click(). Realiza la acción de pulsado del botón
<HTML>
<HEAD>
<title>Ejemplo de JavaScript</title>
</HEAD>
<script LANGUAGE="JavaScript">
<!--
function Mostrar(boton)
{
alert('Ha hecho click sobre el boton: ' + boton.name+', de
valor:'+boton.value);
return true;
}
//-->
</script>
<BODY>
<form action="procesa.phtml" name="formulario" id="formulario" method="GET">
Un boton: <input type="button" name="Boton1" value="El boton 1"
OnClick="Mostrar(this);"><br><br>
Un boton: <input type="button" name="Boton2" value="El boton 2"
OnClick="Mostrar(this);"><br><br>
Un boton: <input type="button" name="Boton3" value="El boton 3"
OnClick="Mostrar(this);"><br>
</form>
</BODY>
</HTML>
El objeto checkbox
Las "checkboxes" nos permiten seleccionar varias opciones marcando el cuadrito que
aparece a su izquierda. El cuadrito pulsado equivale a un "sí" y sin pulsar a un "no" o, lo
que es lo mismo, a "true" o "false".
Propiedades
checked. Valor booleano que nos dice si el checkbox está pulsado o no
defaultChecked. Valor booleano que nos dice si el checkbox debe estar
seleccionado por defecto o no
name. Es una cadena que contiene el valor del parámetro NAME.
value. Es una cadena que contiene el valor del parámetro VALUE.
Métodos
click(). Realiza la acción de pulsado del botón
<HTML>
<HEAD>
<title>Ejemplo de JavaScript</title>
</HEAD>
<script LANGUAGE="JavaScript">
<!--
function Mostrar(boton)
{
msg="Opcion 1:"+formulario.check1.checked+"\n"
msg+="Opcion 2:"+formulario.check2.checked+"\n"
msg+="Opcion 3:"+formulario.check3.checked+"\n"
alert(msg);
}
//-->
</script>
<BODY>
<form action="procesa.phtml" name="formulario" id="formulario" method="GET">
</form>
<A href="javascript:Mostrar()">Ver valores</A>
</BODY>
</HTML>
El objeto radio
Al contrario que con los checkbox, que nos permiten elegir varias posibilidades entre las
dadas, los objetos radio sólo nos permiten elegir una de entre todas las que hay. Están
pensados para posibilidades mútuamente excluyentes (no se puede ser a la vez mayor de
18 años y menor de 18 años, no se puede estar a la vez soltero y casado, etc.).
Propiedades
checked. Valor booleano que nos dice si el radio está seleccionado o no.
defaultChecked. Valor booleano que nos dice si el radio debe estar seleccionado
por defecto o no.
length. Valor numérico que nos dice el número de opciones dentro de un grupo
de elementos radio.
name. Es una cadena que contiene el valor del parámetro NAME.
value. Es una cadena que contiene el valor del parámetro VALUE.
Hay que recordar que para agrupar elementos de tipo radio, todos ellos deben tener el
mismo valor en NAME.
Métodos
click(). Realiza la acción de pulsado del botón.
<HTML>
<HEAD>
<title>Ejemplo de JavaScript</title>
</HEAD>
<script LANGUAGE="JavaScript">
<!--
function Mostrar(boton)
{
msg="Elementos:"+formulario.edad.length+"\n";
msg+="Menor de 18 años:"+formulario.edad[0].checked+"\n";
msg+="Entre 18 y 60 años:"+formulario.edad[1].checked+"\n";
msg+="Mayor de 60 años:"+formulario.edad[2].checked+"\n";
alert(msg);
}
//-->
</script>
<BODY>
<form action="procesa.phtml" name="formulario" id="formulario" method="GET">
Edad:<br>
<input type="radio" name="edad" value="<18"> Menor de 18 años.<br>
<input type="radio" name="edad" value=">18 y <60" checked> Entre 18 y 60
años.<br>
<input type="radio" name="edad" value=">60"> Mayor de 60 años.<br>
</form>
<A href="javascript:Mostrar()">Ver valores</A>
</BODY>
</HTML>
El objeto select
Este objeto representa una lista de opciones dentro de un formulario. Puede tratarse de
una lista desplegable de la que podremos escoger alguna (o algunas) de sus opciones.
Propiedades
del objeto select
length. Valor numérico que nos indica cuántas opciones tiene la lista
name. Es una cadena que contiene el valor del parámetro NAME
options. Se trata de un array que contiene cada una de las opciones de la lista.
Este array tiene, a su vez, las siguientes propiedades:
o defaultSelected. Valor booleano que nos indica si la opción está
seleccionada por defecto.
o index. Valor numérico que nos da la posición de la opción dentro de la
lista.
o length. Valor numérico que nos dice cuántas opciones tiene la lista.
o options. Cadena con todo el código HTML de la lista.
o selected. Valor booleano que nos dice si la opción está actualmente
seleccionada o no.
o text. Cadena con el texto mostrado en la lista de una opción concreta.
o value. Es una cadena que contiene el valor del parámetro VALUE de la
opción concreta de la lista.
selectedIndex. Valor numérico que nos dice cuál de todas las opciones
disponibles está actualmente seleccionada.
<HTML>
<HEAD>
<title>Ejemplo de JavaScript</title>
</HEAD>
<script LANGUAGE="JavaScript">
<!--
function Mostrar(boton)
{
msg="Elementos:"+formulario.edad.length+"\n";
msg+="Edad:
"+formulario.edad.options[formulario.edad.selectedIndex].value+"\n";
alert(msg);
}
//-->
</script>
<BODY>
<form action="procesa.phtml" name="formulario" id="formulario" method="GET">
Edad:<br>
<select name="edad">
<option value="<18" SELECTED>Menor de 18 años</option>
<option value=">18 y <60">Entre 18 y 60 años</option>
<option value=">60">Mayor de 60 años</option>
</select>
</form>
<A href="javascript:Mostrar()">Ver valores</A>
</BODY>
</HTML>
El objeto hidden
Es parecido a un campo de texto (objeto text) salvo que no tiene valor por defecto (no
tiene sentido pues el usuario no va a modificarlo) y que no se puede editar.
Propiedades
name. Es una cadena que contiene el valor del parámetro NAME.
value. Es una cadena que contiene el valor del parámetro VALUE.
Otros objetos:
ancla (anchor): contiene una lista de todas las señales (A NAME) de ese documento.
historia (history): contiene una lista de todos los elementos del historial del navegador.
A través de los métodos Back, Forward y Go podremos desplazarnos por ellos.
navegador (navigator): contiene información sobre el navegador que usamos para ver la
página, a través de propiedades como: appName, appVersion, ...
marco (frame): contiene una lista de todos los marcos que se muestran en ese momento
en la pantalla. Permite desplazarse por ellos, abrir nuevos, ...
Parámetros JavaScript
Permiten construir bucles dentro de un script para que ciertos comandos se ejecuten
varias veces, condicionales para decirle en qué condiciones queremos que se ejecute. A
continuación algunos de ellos:
Eventos en JavaScript
Es la forma de decirle a JavaScript cuándo tiene que llevar a cabo una acción:
Evento Descripción
onClick Se ejecuta cuando se pulsa con el botón izquierdo del
ratón.
onChange Se ejecuta cuando se modifica el contenido de un
input en un formulario.
onFocus Se ejecuta cuando se situa el cursor de inserción
dentro de un elemento de un formulario.
onBlur Se ejecuta cuando se situa el cursor de inserción fuera
de un elemento de un formulario.
onMouseOver Se ejecuta cuando se pone el puntero del ratón sobre
él (sin apretar).
onMouseOut Se ejecuta cuando el puntero del ratón nos lo
llevamos de un zona sensible (por ejemplo, un
enlace).
onSelect Se ejecuta cuando se selecciona un elemento de una
lista en un formulario.
onSubmit Se ejecuta cuando se hace clic sobre el botón de
enviar en un formulario.
onLoad Se ejecuta cuando se abre por primera vez una
página.
onUnLoad Se ejecuta cuando se sale de la página activa.
HREF:javascript Se ejecuta cuando se hace clic sobre un enlace,
pudiendo poner una referencia a una función o
expresión de javascript .
y el enlace de imagen,
<A HREF="link1.htm" onMouseOver="windows.status='Esto es un reloj';return true">
<IMG SRC="reloj.jpg"> </A>
Funciones integradas
Función Descripción
eval (cadena) Ejecuta el resultado de la cadena como si fuera una
expresión.
isNan (valor) Si no es un número da verdadero; si es un numero da
falso.
escape (cadena) Visualiza la cadena sin las etiquetas de HTML.
parseFloat (cadena) Convierte una cadena en un número real de coma
flotante.
parseInt Convierte una cadena en un número entero. Se puede
(cadena[,base]) poner, como segundo argumento, un valor que indica
en qué sistema numérico se quiere (decimal=10,
hexadecimal=8,...). Por defecto, será en base 10.
Java Script
Tema: Ejemplos de JavaScript
Curso: Diseño y Desarrollo Web
Docente: Ing. Janett Julca Flores
if (form.Email.value == "")
{ alert("Por favor ingrese su dirección de e-mail"); form.Email.focus(); return; }
if (form.Domicilio.value == "")
{ alert("Por favor ingrese su domicilio"); form.Domicilio.focus(); return; }
if (form.Telefono.value == "")
{ alert("Por favor ingrese su número de teléfono"); form.Telefono.focus(); return; }
if (form.Empresa.value == "")
{ alert("Por favor ingrese el nombre de su empresa"); form.Empresa.focus(); return; }
if (form.NumeroTarjeta.value == "")
{ alert("Por favor ingrese los números de su tarjeta de crédito"); form.NumeroTarjeta.focus(); return; }
if (form.Codigo.value == "")
{ alert("Por favor ingrese el código de su tarjeta de crédito"); form.Codigo.focus(); return; }
if (form.NombreTitular.value == "")
{ alert("Por favor indique el nombre del titular de la tarjeta de crédito"); form.NombreTitular.focus(); return; }
if (form.Email.value.indexOf('@', 0) == -1 ||
form.Email.value.indexOf('.', 0) == -1)
{ alert("Dirección de e-mail inválida"); form.Email.focus(); return; }
form.submit();
}
</script>
<body BGCOLOR="#FFFFFF">
<html>
<head>
<SCRIPT LANGUAGE="JavaScript">
<!--
function popUp(URL) {
day = new Date();
id = day.getTime();
eval("page" + id + " = window.open(URL, '" + id + "',
'toolbar=0,scrollbars=0,location=0,statusbar=0,menubar=0,resizable=0,width=320,height=240');");
}
// -->
</script>
</head>
<body>
<A HREF="javascript:popUp('about:blank')">Abrir Ventana Pop Up</A>
</body>
</html>
Ejercicio 7: Mensajes
<html>
<head>
<title>Ejemplo 7 JavaScript: eventos </title>
</head>
<body>
<form>
<p>Escribe tu nombre: <input type="text" name="nombre" value=""></p>
<p>Ahora tus apellidos: <input type="text" name="apellidos" value=""></p>
<hr>
<input type="button" name="boton1" value="Ver el nombre"
onclick = " alert(this.form.nombre.value); ">
<input type="button" name="boton2" value="Ver los apellidos"
onclick = " alert(this.form.apellidos.value); ">
<hr>
<input type="button" name="boton3" value="Ver ambos en la barra de estado"
onclick = " window.status = this.form.nombre.value + ' ' + this.form.apellidos.value; ">
<input type="button" name="boton4" value="Borrar la barra de estado"
onclick = " window.status = ''; ">
<hr>
<input type="button" name="boton5" value="Mostrar"
onclick = " this.form.nombreCompleto.value = this.form.nombre.value
+ ' ' + this.form.apellidos.value ">
<p>Nombre completo: <input type="text" name="nombreCompleto" value=""></p>
</form>
</body>
</html>
<html>
<head>
<title>Ejemplo 8 JavaScript: Eventos</title>
<script>
<!--
function comprueba_dia (f) {
if (f.dia.value>=1 && f.dia.value<=31) {
; // entrada correcta (no hace nada)
} else {
alert ("No es un día válido");
f.dia.focus ();
}
}
function comprueba_mes (f) {
if (f.mes.value>=1 && f.mes.value<=12) {
; // entrada correcta (no hace nada)
} else {
alert ("No es un mes válido");
f.mes.focus ();
}
}
-->
</script>
</head>
<BODY onload="window.status='Bienvenido a mi página'"
onunload="alert ('Vuelve pronto')">
<p>
<a href="http://123.com" target=_blank
onmouseover=" window.status='¡Ponga atencion!'; return true;"
onmouseout=" window.status='Gracias'; return true; ">
No me pises
</a>
</p>
<!-- "return true;" es para que aparezca nuestro mensaje en lugar del que mostraría la etiqueta <a> -->
<form>
Escribe un día del mes (1-31):
<input type="text" name="dia"
onfocus=" window.status='Escribe un número entre 1 y 31'; "
onblur=" comprueba_dia (this.form); ">
<hr>
Escribe un mes (1-12):
<input type="text" name="mes"
onfocus=" window.status='Escribe un número entre 1 y 12';">
<input type="button" name="boton" value="¡Comprobar!"
onclick=" comprueba_mes (this.form); ">
</form>
</body>
</html>
<html>
<head><script LANGUAGE="JavaScript">
function Validar(form)
{
if (form.Nombre.value == "")
{ alert("Por favor ingrese su nombre"); form.Nombre.focus(); return; }
if (form.Email.value == "")
{ alert("Por favor ingrese su dirección de e-mail"); form.Email.focus(); return; }
if (form.Domicilio.value == "")
{ alert("Por favor ingrese su domicilio"); form.Domicilio.focus(); return; }
if (form.Telefono.value == "")
{ alert("Por favor ingrese su número de teléfono"); form.Telefono.focus(); return; }
if (form.Empresa.value == "")
{ alert("Por favor ingrese el nombre de su empresa"); form.Empresa.focus(); return; }
if (form.NumeroTarjeta.value == "")
{ alert("Por favor ingrese los números de su tarjeta de crédito"); form.NumeroTarjeta.focus(); return; }
if (form.Codigo.value == "")
{ alert("Por favor ingrese el código de su tarjeta de crédito"); form.Codigo.focus(); return; }
if (form.NombreTitular.value == "")
{ alert("Por favor indique el nombre del titular de la tarjeta de crédito"); form.NombreTitular.focus(); return; }
if (form.Email.value.indexOf('@', 0) == -1 ||
form.Email.value.indexOf('.', 0) == -1)
{ alert("Dirección de e-mail inválida"); form.Email.focus(); return; }
form.submit();
}
</script>
<body BGCOLOR="#FFFFFF">
var salto
var offset_imagen
function MostrarImagen() {
var imagen = 1
var salida = '<table cellspacing="0" cellpadding="0" border="1">\n';
for (var y = 0; y < altura; y++) {
salida += '<tr>\n';
for (var x = 0; x < anchura; x++, imagen++) {
if (imagen != blanco) {
salida += '<td><a href="javascript:MoverImagen(' + imagen + ')"><img src="'
+ ruta + prefijo + imagen + extension + '" width="' + ancho_pieza + '" height="' + alto_pieza + '"
border="no"></a></td>\n'
} else {
salida += '<td><a href="javascript:MoverImagen(' + imagen + ')"><img src="'
+ pieza_blanca + '" width="' + ancho_pieza + '" height="' + alto_pieza + '" border="no"></a></td>\n'
}
}
salida += '</tr>\n'
}
salida += '</table>'
document.write( salida )
}
function MoverImagen(imagen) {
if ( (Math.floor((imagen - 1)/anchura) != 0) && (blanco == imagen - anchura) ) {
Mueve(imagen)
document.datos.cambios.value++
} else if ( ((imagen - 1) % anchura != anchura - 1) && (blanco == imagen + 1) ) {
Mueve(imagen)
document.datos.cambios.value++
} else if ( (Math.floor((imagen - 1)/anchura) != altura - 1) && (blanco == imagen + anchura) ) {
Mueve(imagen)
document.datos.cambios.value++
} else if ( ((imagen - 1) % anchura != 0) && (blanco == imagen - 1) ) {
Mueve(imagen)
document.datos.cambios.value++
} else
alert('Esta pieza no puede moverse. Pulsa sobre\nuna pieza colindante con el espacio en blanco.')
}
function Mueve(imagen) {
document.images[offset_imagen + blanco - 1].src = document.images[offset_imagen + imagen - 1].src
blanco = imagen
document.images[offset_imagen + imagen - 1].src = pieza_blanca
}
function Cambios() {
this.puzzle = new Array( 4 )
this.puzzle[0] = 1
this.puzzle[1] = anchura
this.puzzle[2] = -1
this.puzzle[3] = -anchura
}
function DesordenaImagen() {
<body>
<script type="text/javascript" language="javascript">
MostrarImagen();
</script>
<HTML>
<head>
<script language="javascript" type="text/javascript">
///Para entender las explicaciones:
// triunfo - pone y gana
// jugada - pone y tiene en una línea dos 'O' y una casilla vacía
// defender - evitar que gane el contrario en el siguiente movimiento
//No tiene sentido que primero ocupe el centro, si hay triunfo o jugada
//No debe defender primero y atacar después. Primero busca el triunfo, luego
//defiende y después busca jugada
//variable global
var jugando = true
//FUNCION COMPRUEBA JUGADA------------------------------------------------
function CompruebaJugada(tablero, ficha) {
//comprueba que hay posibilidad de hacer 3 en raya en una fila, columna o diagonal
//devuelve la posición donde hay que colocar la ficha para hacerlo y -1 si no hay jugada
var x, y
return -1
}
//FUNCION PAREJA HORIZONTAL---------------------------------------------------
function ParejaHorizontal(tablero, ficha) {
//comprueba si es posible poner 2 en una fila, estando vacia la otra posicion...
//...de esa misma fila
//devuelve la fila que permite hacerlo, o -1 en caso contrario
var x, y
for(x = 0; x < 9; x += 3) { //comprueba las filas
if ((tablero.elements[x].value == ficha) && (tablero.elements[x + 1].value == "") &&
(tablero.elements[x + 2].value == ""))
return (x)
if ((tablero.elements[x].value == "") && (tablero.elements[x + 1].value == ficha) &&
(tablero.elements[x + 2].value == ""))
return (x + 1)
if ((tablero.elements[x].value == "") && (tablero.elements[x + 1].value == "") &&
(tablero.elements[x + 2].value == ficha))
return (x + 2)
}
return -1
}
//FUNCION PAREJA VERTICAL---------------------------------------------------
function ParejaVertical(tablero, ficha, jugadaHtal) {
//comprueba si es posible poner 2 en una columna, estando vacia la otra posicion...
//...de esa misma columna y teniendo en cuenta si esa posicion ya es pareja horizontal
//devuelve la columna que permite hacerlo si no es pareja horizontal, o -1 en caso contrario
var x, y
return -1
}
//FUNCION OBTEN POSICION-------------------------------------------------
function ObtenPosicion(jugadaHtal, jugadaVcal) {
//busca la posicion que permite hacer jugada vertical y jugada horizontal a la vez
//conocidas la fila y la columna donde pueden hacerse parejas
var x, y, fila, columna
var posicion = 0
matriz = new Array(3)
for (x = 0; x < 3; x++) { //crea un matriz que asigna posicion a fila y columna
matriz[x] = new Array(3)
for (y = 0; y < 3; y++) {
matriz[x][y] = posicion
posicion ++
}
}
//ataca y gana
jugada = CompruebaJugada(tablero, "O")
if (jugada != -1) {
tablero.elements[jugada].value = "O"
alert('¡Yo gano!')
document.marcador.perdidas.value++
jugando = false
return 1
}
//ocupa el centro
if (tablero.elements[4].value == "") {
tablero.elements[4].value = "O"
return 1
}
alert('Tablas.')
document.marcador.tablas.value++
jugando = false
return -1
}
//FUNCION PONER ASPA------------------------------------------------------
function PonerAspa(tablero, posicion) {
return false
}
</script>
</head>
<body>
<!-- Para visualizar el tablero y lo contadores -->
<form name="tablero">
<div align="center"><center>
<table border="0" width="62%" cellpadding="5">
<tr>
<td width="20%"><input type="text" name="T0" size="3"></td>
<td width="20%"><input type="text" name="T1" size="3"></td>
<td width="20%"><input type="text" name="T2" size="3"></td>
<td width="85%" align="right"></td>
</tr>
<tr>
<td width="20%"><input type="text" name="T3" size="3"></td>
<td width="20%"><input type="text" name="T4" size="3"></td>
<td width="20%"><input type="text" name="T5" size="3"></td>
<td width="85%" align="right"></td>
</tr>
<tr>
<td width="20%"><input type="text" name="T6" size="3"></td>
<td width="20%"><input type="text" name="T7" size="3"></td>
<td width="20%"><input type="text" name="T8" size="3"></td>
<td width="85%" align="right"></td>
</tr>
<tr>
<td width="20%"><input type="button" value=" X " name="B0" onClick="PonerAspa(tablero, 0)"
class="metal"></td>
<td width="20%"><input type="button" value=" X " name="B1" onClick="PonerAspa(tablero, 1)"
class="metal"></td>
<td width="20%"><input type="button" value=" X " name="B2" onClick="PonerAspa(tablero, 2)"
class="metal"></td>
<td width="85%"><input type="reset" value="Juego nuevo" name="nuevo" onClick="jugando=true"
class="metal"></td>
</tr>
<tr>
<td width="18%"><input type="button" value=" X " name="B3" onClick="PonerAspa(tablero, 3)"
class="metal"></td>
<td width="17%"><input type="button" value=" X " name="B4" onClick="PonerAspa(tablero, 4)"
class="metal"></td>
<td width="18%"><input type="button" value=" X " name="B5" onClick="PonerAspa(tablero, 5)"
class="metal"></td>
<td width="85%"></td>
</tr>
<tr>
<td width="18%"><input type="button" value=" X " name="B6" onClick="PonerAspa(tablero, 6)"
class="metal"></td>
<td width="17%"><input type="button" value=" X " name="B7" onClick="PonerAspa(tablero, 7)"
class="metal"></td>
<td width="18%"><input type="button" value=" X " name="B8" onClick="PonerAspa(tablero, 8)"
class="metal"></td>
<td width="85%" align="right"></td>
</tr>
</table>
</center></div>
</form>
<form name="marcador">
<div align="center"><center>
<table border="0" width="62%" cellpadding="5" cellspacing="0">
<tr>
<td width="20%"><small>Tablas:<br>
</small><input type="text" name="tablas" value="0" size="6"></td>
<td width="20%"><small>Perdidas:<br>
</small><input type="text" name="perdidas" value="0" size="6"></td>
<td width="20%"><small>Ganadas:<br>
</small><input type="text" name="ganadas" value="0" size="6"></td>
<td width="85%"> <br><input type="reset" value="Limpiar" name="borrar" class="metal"></td>
</tr>
</table>
</center></div>
</form>
<h2>Cómo jugar</h2>
<p>El ordenador juega siempre con los <em>redondeles</em> ("O") y tú con las <em>aspas</em>
("X"). Empiezas tú. Para poner un <em>aspa</em> debes pulsar sobre el botón
del panel inferior que se corresponda con la posición en la que quieres ponerla. Puedes
también escribirla a mano, siempre con mayúsculas (y sin hacer trampas, porque el
ordenador confía en ti).</p>
<p>El ordenador pondrá su <em>redondel</em> cada vez que tú pongas tu <em>aspa</em>.
Nunca se equivoca, y si te descuidas (y no le haces trampa), te gana. Si haces trampas, no
funcionará correctamente.</p>
<p>Cuando acaba la partida, el ordenador indica el resultado e incrementa los contadores
inferiores. Para jugar otra partida, pulsar el botón <strong>Juego nuevo</strong>, que
limpia el panel de juego. Para borrar los contadores, pulsar el botón <strong>Limpiar</strong>.</p>
</body>
</HTML>
<html>
<head>
<title> JavaScript y efectos de sonido</title>
<script LANGUAGE="JavaScript"><!--
// Precargar los archivos de audio (MouseOver sound)
var aySound = new Array();
// Array con los archivos de sonido
aySound[0] = "sonido00.mp3";
aySound[1]="sonido01.mp3";
aySound[2]="sonido02.mp3";
aySound[3]="sonido03.mp3";
// No Editar esta línea
document.write('<BGSOUND ID="auIEContainer">')
IE = (navigator.appVersion.indexOf("MSIE")!=-1 && document.all)? 1:0;
NS = (navigator.appName=="Netscape" && navigator.plugins["LiveAudio"])? 1:0;
ver4 = IE||NS? 1:0;
onload=auPreload;
function auPreload() {
if (!ver4) return;
if (NS) auEmb = new Layer(0,window);
else {
Str = "<DIV ID='auEmb' STYLE='position:absolute;'></DIV>";
document.body.insertAdjacentHTML("BeforeEnd",Str);
}
var Str = '';
for (i=0;i<aySound.length;i++)
Str += "<EMBED SRC='"+aySound[i]+"' AUTOSTART='FALSE' HIDDEN='TRUE'>"
if (IE) auEmb.innerHTML = Str;
else {
auEmb.document.open();
auEmb.document.write(Str);
auEmb.document.close();
}
auCon = IE? document.all.auIEContainer:auEmb;
auCon.control = auCtrl;
}
function auCtrl(whSound,play) {
if (IE) this.src = play? aySound[whSound]:'';
else eval("this.document.embeds[whSound]." + (play? "play()":"stop()"))
}
function playSound(whSound) { if (window.auCon) auCon.control(whSound,true); }
function stopSound(whSound) { if (window.auCon) auCon.control(whSound,false); }
//-->
</script>
</head>
<body>
- Sonido onMouseOver/onMouseOut : <BR>
<A HREF="YourPage.html" onMouseOver="playSound(0)" onMouseOut="stopSound(0)">Move mouse over to
play sound</A>
<BR>
- Sonido onClick :
<A HREF="javascript:playSound(1);">Click aquí para escuchar el sonido</A>
<BR>
-Con un Botón:
<INPUT TYPE="BUTTON" VALUE="Click aquí!" onClick="playSound(2)">
</body>
</html>