Practicas Clase JavaScript
Practicas Clase JavaScript
Practicas Clase JavaScript
INDICE DE EJEMPLOS:
1 CONTRASEAS
1. CONTRASEAS EN JAVASCRIPT .................... 2
1.1 CONTRASEA TIPICA (USER Y PASS) ......... 2
1.2 CONTRASEA CAMBIO DE PAGINA ............. 3
1.3 CONTRASEA CON TECLADO VIRTUAL ..... 4
1.4 CREAR CLAVES ALEATORIA .......................... 6
1.5. COMPROBAR LA FORTALEZA DE UNA
CLAVE ..................................................................... 6
1.6 PASSWORD 2 ....................................................... 7
3 APLICACIONES
3. APLICACIONES .................................................... 10
3.1 CALCULAR LETRA DEL DNI .......................... 10
4 RELOJES Y FECHAS
4. RELOJES Y FECHAS .......................................... 13
4.1 RELOJ SENCILLO ............................................. 13
4.2 CALENDARIO CSS ............................................ 14
7 OBJETO DOCUMENT
7. EL OBJETO DOCUMENT ................................... 21
7.1 IMGENES ALEATORIAS ................................ 21
7.2 GALERIA DE IMGENES (FRAMEWORK
LIGHTBOX) ........................................................... 21
7.3 Propiedades de Imagenes ............................... 23
7.4 Propiedades de Capas ...................................... 25
7.5 CAMBIAR TAMAO DE CAPA........................ 26
7.6 EFECTO PERSIANA EN CAPA ....................... 26
7.7 MOSTRAR CAPA CON CARGANDO AL
INICIO TIPO GOOGLE ........................................ 28
7.8 ESQUEMA DESPLEGABLE (ie) ...................... 30
5 FORMULARIOS
8 COOKIES
5. FORMULARIOS .................................................... 16
5.2 FUNCIONES PARA VALIDAR CAMPOS DE
TEXTO.................................................................... 17
8. COOKIES................................................................ 31
8.1 NOTIFICADOR DE ULTIMA MODIFICACION31
1. CONTRASEAS EN JAVASCRIPT
1.1 CONTRASEA TIPICA (USER Y PASS)
El objetivo de este ejemplo es crear un tipico acceso por contrasea a alguna de las
paginas de nuestro sitio.
Usted debe aprender con este ejemplo a capturar los datos de los componentes de
formulario, trabajar con condiciones IF/ELSE, crear una funcion y utilizar un evento
en un boton para lanzar funciones.
Codigo:
<html>
<head>
<script>
function login(){
mi_usuario = document.form1.user.value;
mi_contrasena = document.form1.pass.value;
if (mi_usuario == "raul" && mi_contrasena == "miko") {
document.location = "http://google.es";
}else{
alert(mi_usuario + ", La contrasea no es correcta");
}
}
</script>
</head>
<body>
<form id="form1" name="form1" method="post" action="">
Usuario: <input type="text" name="user" id="user" /><BR>
Contrasea: <input type="password" name="pass" id="pass" /><BR>
<input type="button" name="button" id="button" value="Entrar" onClick="login()" />
</form>
</body>
</html>
<HTML>
<HEAD>
<TITLE>Acceso con password</TITLE>
<script>
function teclado(valor){ clave.pantalla.value += valor; }
function login(){
if (clave.pantalla.value == clave.oculto.value){
document.location="http://google.es";
}else{
alert("Fuera de aqui sucia RATA!!")
}
}
</script>
</HEAD>
<BODY bgcolor="#ffffff" TEXT="#000000" LINK="#8000FF" VLINK="#3AAFAF">
<form action="" method="post" name="clave" id="clave">
<label>
<div align="center">
<input type="text" name="pantalla" id="pantalla">
<input name="oculto" type="hidden" id="oculto" value="6868">
</div>
</label>
<div align="center"></div>
<p align="center">
<input type="button" name="1" id="1" value="1" onClick="teclado(1)">
<input type="button" name="2" id="2" value="2" onClick="teclado(2)">
<input type="button" name="3" id="3" value="3" onClick="teclado(3)">
<br>
<input type="button" name="4" id="4" value="4" onClick="teclado(4)">
<input type="button" name="5" id="5" value="5" onClick="teclado(5)">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>Clave Aleatoria</title>
<script>
var caracter="1234567890";
caracter+="QWERTYUIOPASDFGHJKLZXCVBNM";
caracter+="qwertyuioplkjhgfdsazxcvbnm";
var numero_caracteres=8;
var total=caracter.length;
function azar(){
var clave="";
for(a=0;a<numero_caracteres;a++){
clave+=caracter.charAt(parseInt(total*Math.random(1)));
}
document.forms[0].clave2.value=clave;
}
</script>
</head>
<body onload="azar()">
<form>
Clave.-<input type="text" readonly="readonly" name="clave2" id="clave2" />
<input type="button" value="regenerar clave" onclick="azar()" />
</form>
</body>
</html>
<html>
<head>
<title>Fortaleza de Contrasea</title>
<script>
pw_min = 5; // Caracteres minimos de la contrasea
pw_max = 20; // Caracteres maximos de la contrasea
pw_invalid = 'red'; // Contrasea no valida = color rojo
pw_insecure = 'yellow'; // Contrasea no insegura = color amarillo
pw_secure = 'green'; // Contrasea valida = color verde
pw_validate = /^[a-z0-9]+$/i; // Algoritmo para validar la password
document.onkeyup = function() {
if (typeof pw_focus != 'undefined') {
if (pw_focus.value.length < pw_min || pw_focus.value.length >
pw_max) bcolor = pw_invalid;
else if (!pw_validate.test(pw_focus.value)) bcolor = pw_invalid;
else if (pw_focus.value.toLowerCase() == pw_focus.value ||
pw_focus.value.toUpperCase() == pw_focus.value) bcolor = pw_insecure;
else if (/^[a-z]+$/i.test(pw_focus.value) || /^[09]+$/i.test(pw_focus.value)) bcolor = pw_insecure;
else bcolor = pw_secure;
pw_focus.style.backgroundColor = bcolor;
}
}
window.onload = function() {
var inputs = document.getElementsByTagName('input');
for (i = 0; i < inputs.length; i++) {
if (inputs[i].type == 'password') {
inputs[i].onfocus = function() {
pw_focus = this;
}
inputs[i].onblur = function() {
delete pw_focus;
}
}
}
}
</script>
</head>
<body>
<input type="password" style="width: 250px" /><br /><br />
</body>
</html>
1.6 PASSWORD 2
Una sencilla forma de acceder a una pgina, mediante un password o contrasea, empleando
para ello JavaScript.
a) Cdigo JavaScript
La primera funcin estar en la pgina de acceso mientras que la sentencia para
redireccionar se sita en la cabecera de la pgina a la que se accede desde la primera
(pgina clave).
El mtodo se basa en colocar pginas cuyo nombre sea el de las passwords, seguido por
supuesto de la extensin htm o html. Cuando un usuario accede deber conocer el
nombre de la pgina si no recibir un mensaje de pgina no encontrada emitido por el
navegador. Al acceder a la pgina clave el navegador se redirecciona a la pgina donde
tu quieras que llegue.
function password(texto)
{
if (texto!="")
location.href= texto+".htm";
}
//sentencia para redireccionar
location.replace("paginabase.htm")
b) Cdigo HTML
La pgina de acceso contendr la funcin password() o mejor an un enlace al archivo
con esta funcin. La pgina clave se llamar con el nombre que asignes a la password,
por ejemplo re345ty seguido de la extensin htm.
Cuando el usuario accede a tu pgina de acceso escribe en el formulario su clave, si sta
es re345ty llegar a la pgina re345ty.htm donde una sentencia de redireccin lo enva a
tu pgina principal. Si el usuario escribe otra clave, por ejemplo er456, el navegador
8
Pgina clave:
<HTML>
<HEAD>
<script language="javascript">
location.replace("mipaginappal.htm");
</script>
</HEAD>
<BODY COLOR ="#FFFFFF">
</BODY>
</HTML>
2. EDITORES DE TEXTO
Usted debe aprender: configurar el Framework TinyMCE y asimilar los conceptos para
trabajar con otros frameworks.
Codigo:
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Documento sin título</title>
<script type="text/javascript" src="tinymce/jscripts/tiny_mce/tiny_mce.js"></script>
<script language="javascript" type="text/javascript">
tinyMCE.init({
mode : "textareas", // uso en areas de texto
theme : "advanced" //tipo de editor a usar
});
</script>
</head>
<body>
10
3. APLICACIONES
3.1 CALCULAR LETRA DEL DNI
Esta aplicacion utiliza el algoritmo que define que letra tendra nuestro DNI, es muy util para
calcularla automaticamente y que el usuario no tenga que escribir nada.
Codigo:
<html>
<head>
<title>Calculo de la letra del D.N.I.</title>
</head>
<BODY bgcolor="#ffffff" TEXT="#000000" LINK="#8000FF" VLINK="#3AAFAF">
<script language="JavaScript">
<!-var ASC
function CalcularNIF()
{
if (document.forms[0].DNI.value == "")
{
alert("Escriba el valor para el campo \"DNI\" .");
document.forms[0].DNI.focus();
return (false);
}
var digitos = "0123456789";
var chequeo = document.forms[0].DNI.value;
var correcto = true;
for (i = 0; i < chequeo.length; i++)
{
ch = chequeo.charAt(i);
for (j = 0; j < digitos.length; j++)
11
if (ch == digitos.charAt(j))
break;
if (j == digitos.length)
{
alert("Escriba nicamente d gitos del 0 al 9 en el campo \"DNI\".");
document.forms[0].DNI.focus();
return (false);
}
}
ASC= document.forms[0].DNI.value % 23;
if ( ASC == 0) { document.forms[0].Letra.value="T"; };
if ( ASC == 1) { document.forms[0].Letra.value="R"; };
if ( ASC == 2) { document.forms[0].Letra.value="W"; };
if ( ASC == 3) { document.forms[0].Letra.value="A"; };
if ( ASC == 4) { document.forms[0].Letra.value="G"; };
if ( ASC == 5) { document.forms[0].Letra.value="M"; };
if ( ASC == 6) { document.forms[0].Letra.value="Y"; };
if ( ASC == 7) { document.forms[0].Letra.value="F"; };
if ( ASC == 8) { document.forms[0].Letra.value="P"; };
if ( ASC == 9) { document.forms[0].Letra.value="D"; };
if ( ASC == 10) { document.forms[0].Letra.value="X"; };
if ( ASC == 11) { document.forms[0].Letra.value="B"; };
if ( ASC == 12) { document.forms[0].Letra.value="N"; };
if ( ASC == 13) { document.forms[0].Letra.value="J"; };
if ( ASC == 14) { document.forms[0].Letra.value="Z"; };
if ( ASC == 15) { document.forms[0].Letra.value="S"; };
if ( ASC == 16) { document.forms[0].Letra.value="Q"; };
if ( ASC == 17) { document.forms[0].Letra.value="V"; };
if ( ASC == 18) { document.forms[0].Letra.value="H"; };
if ( ASC == 19) { document.forms[0].Letra.value="L"; };
if ( ASC == 20) { document.forms[0].Letra.value="C"; };
if ( ASC == 21) { document.forms[0].Letra.value="K"; };
if ( ASC == 22) { document.forms[0].Letra.value="E"; };
if ( ASC == 23) { document.forms[0].Letra.value="T"; };
return document.forms[0].Letra.value;
}
// -->
</script>
<font size="+2"><b><i>Calculo del NIF</b></i></font><p>
Introduciendo el DNI calcula la letra del NIF<p>
<center>
<form method="POST" name="NIF">
<table border="0" bgcolor="#808080">
12
<tr>
<td> </td>
<td><font face="Comic Sans MS"><strong>DNI</strong></font></td>
<td align="center"><font face="Comic Sans
MS"><strong>Letra</strong></font></td>
</tr>
<tr>
<td><font face="Comic Sans MS"><input type="button"
name="Calcular" value="Calcular" language="JavaScript" onclick="CalcularNIF()">
</font></td>
<td><font face="Comic Sans MS"><input type="text" size="9"
maxlength="9" name="DNI"> </font></td>
<td align="center"><font face="Comic Sans MS"><input type="text"
size="1" maxlength="1" name="Letra"> </font></td>
</tr>
</table>
</form>
<blockquote>
<p><strong>Fecha de Creacion: </strong><font
face="Arial"><strong>15/6/97</strong></font><font face="Comic Sans MS">
</font><strong><br>
Ultima Revision: </strong><font
face="Arial"><strong>31/8/97</strong></font><strong><br>
Autor: </strong><font face="Arial"><strong>Overdrive</strong></font></p>
</blockquote></center>
<a href="index.htm#dni1">Volver</a>
</body>
</html>
4. RELOJES Y FECHAS
4.1 RELOJ SENCILLO
Mediante este ejemplo crearemos un reloj para ser visualizado en una caja de texto.
13
<html>
<head>
<title>Mi primer reloj en JAVA</title>
<script language="JavaScript">
<!-- Java Clock
var timerID = null;
var timerRunning = false;
function stopclock (){
if(timerRunning)
clearTimeout(timerID);
timerRunning = false;
}
function startclock () {
// Nos aseguramos que el reloj esta parado
stopclock();
showtime();
}
function showtime () {
var fecha = new Date();
var hora = fecha.getHours();
var minutos = fecha.getMinutes();
var segundos = fecha.getSeconds()
var timeValue = "" + ((hora >12) ? hora -12 :hora)
timeValue += ((minutos < 10) ? ":0" : ":") + minutos
timeValue += ((segundos < 10) ? ":0" : ":") + segundos
timeValue += (hora >= 12) ? " P.M." : " A.M."
document.clock.face.value = timeValue;
timerID = setTimeout("showtime()",1000);
timerRunning = true;
}
</script>
</head>
<BODY onload="startclock()">
<form name="clock" onsubmit="0">
<strong><input type="text" size="12" name="face"></strong>
</form>
</body></html>
Mediante el siguiente ejemplo veremos como utilizar uno de los miles de calendarios que
podemos encontrar en internet. La mayora de ellos se utilizan en sitios donde tenemos que
elegir una fecha para reservar algo.
Todo lo necesario para hacer el ejemplo lo podeis descargar aqu:
http://sourceforge.net/projects/jscalendar/
<html>
<head>
<title>Calendario de pruebas</title>
</head>
<body>
<!-- formulario con el campo de texto y el botn para lanzar el calendario-->
15
</body>
</html>
16
5. FORMULARIOS
5.1 INSERTAR UNA IMAGEN DENTRO DE UN BOTON DE FORMULARIO
Mediante este Script vamos a insertar una imagen dentro del boton tipico de formulario, con
lo que ganara mas en aspecto.
Codigo:
<button type="submit"><img src="http://www.iconarchive.com/icons/deleket/sleek-xpbasic/256/Ok-icon.png" width ="20" height="20" alt="xxx" />Enviar</button>
function maximo_caracteres(maximo){
var cadena_texto = document.formu.micaja.value;
var tamano_texto = cadena_texto.length;
17
Campo de texto que contiene Email: (Aplicar con evento onBlur en la caja)
function email_valido(){
var cadena = document.formu.micaja2.value;
var arroba = cadena.lastIndexOf('@');
var punto = cadena.lastIndexOf('.',arroba);
if ((arroba < 0) && (punto < 0)){
alert ("Esto no es un Email");
} }
document.location = "mediana.htm";
else
document.location = "grande.htm";
</script>
19
function abrirVentana(){
//guardo la referencia de la ventana para poder utilizarla luego
ventana_secundaria =
window.open("cerrar_window2.html","miventana","width=300,height=200,menubar=no")
}
function cerrarVentana(){
//la referencia de la ventana es el objeto window del popup. Lo utilizo para acceder al mtodo close
ventana_secundaria.close()
}
</script>
20
7. EL OBJETO DOCUMENT
7.1 IMGENES ALEATORIAS
Mediante el siguiente ejemplo veremos como cargar imgenes aleatorias en nuestra pgina:
Codigo:
<script language="javascript1.5">
imagen = new Array; // Poner aqui las imagenes que quiero rotar
imagen[0]="boton_superior.jpg";
imagen[1]="boton_superior2.jpg";
imagen[2]="boton_Mas.jpg";
imagen[3]="boton_superior.jpg";
21
document.write(src);
document.write ("<IMG SRC="+ src +">");
</script>
Importante:
FACEBOX:
Este es otro ejemplo de como usar otro framework para mostrar imagenes y popups integrados. En
este caso es mas sencillo y esta muy indicado para mostrar publicidad.
El Framework lo descargaremos de aqu: http://defunkt.github.com/facebox/
Descomprimimos el archivo ZIP y lo guardamos en la RAIZ de nuestro SITIO de Dreamweaver.
En la web debemos configurar lo siguiente:
<script type="text/javascript">
jQuery(document).ready(function($) {
$('a[rel*=facebox]').facebox({
loading_image : 'loading.gif',
close_image
: 'closelabel.gif'
})
})
</script>
BODY:
<a href="#info" rel="facebox">texto para dentro de la ventana</a>
<div id="info" style="display:none;">
Texto para dentro de la ventana
</div>
<a href="stairs.jpg" rel="facebox"><img src="stairs.jpg"></a>
23
<HEAD>
<title>Ejemplo de JavaScript</title>
</HEAD>
<script LANGUAGE="JavaScript">
<!-img1 = new Image();
img1.src = "chica.jpg";
img2 = new Image();
img2.src = "chica2.jpg";
function cambia(nombre,imagen)
{
nombre.src = imagen.src
}
function dobleancho()
{
imagen1.width=imagen1.width*2;
}
function doblealto()
{
imagen1.height=imagen1.height*2;
}
function mitadancho()
{
imagen1.width=imagen1.width/2;
}
function mitadalto()
24
{
imagen1.height=imagen1.height/2;
}
//-->
</script>
<BODY>
<a href="" onmouseover="cambia(imagen1,img1)" onmouseout="cambia(imagen1,img2)"><img
src="chica.jpg" width="68" height="68" border="0" name="imagen1"></a><br><br>
<a href="javascript:dobleancho()">Doble ancho</a><br>
<a href="javascript:doblealto()">Doble Alto</a><br>
<a href="javascript:mitadancho()">Mitad ancho</a><br>
<a href="javascript:mitadalto()">Mitad Alto</a><br>
</BODY>
</HTML>
<script language="Javascript">
function mostrar(nombreCapa){
document.getElementById(nombreCapa).style.visibility="visible";
}
function ocultar(nombreCapa){
document.getElementById(nombreCapa).style.visibility="hidden";
}
25
</script>
Capas en la parte de Body:
<div id="capa1"
style="position:absolute;width:100;height:100;top:100;left:100;background-color:blue"
onmouseout="ocultar('capa2')" onmouseover="mostrar('capa2')">Capa 1</div>
<div id="capa2"
style="position:absolute;width:100;height:100;top:100;left:200;backgroundcolor:red;visibility:hidden">Capa 2</div>
function agrandar(nombreCapa){
document.getElementById(nombreCapa).style.visibility="visible";
document.getElementById(nombreCapa).style.width=400;
document.getElementById(nombreCapa).style.height=410;
}
Enlace en BODY:
<script language="Javascript">
var temporizadorplegar;
var temporizadordesplegar;
function plegar(){
clearTimeout(temporizadordesplegar);
26
var altura=parseInt(document.getElementById("contenido").style.height);
if(altura>0)
{
altura--;
document.getElementById("contenido").style.height=altura+"px";
temporizadorplegar=setTimeout("plegar()",10);
}
else
{
clearTimeout(temporizadorplegar);
}
}
function desplegar(){
clearTimeout(temporizadorplegar);
var altura=parseInt(document.getElementById("contenido").style.height);
if(altura<305){
altura++;
document.getElementById("contenido").style.height=altura+"px";
temporizadordesplegar=setTimeout("desplegar()",10);
}
else
{
27
clearTimeout(temporizadordesplegar);
}
}
</script>
Debemos crear los botones y la capa en BODY:
7.7 Mostrar una Capa que indique que la pagina esta Cargando:
Usaremos este script cuando tengamos paginas que tarden mucho en cargar, de esta manera
informaremos al usuario que la pagina esta cargando.
Se aconseja copiar por completo el cdigo y pegarlo en una nueva pagina de Dreamweaver para ver
el resultado:
Cdigo:
<html >
<head>
28
function oculta() {
document.getElementById("cargando").style.display = "none";
cargado = true;
clearTimeout(timerID);
}
function fTimer() {
var puntos = "";
for(i=0;i<numeroPuntos;i++) {
puntos += ".";
}
if (numeroPuntos++ >= maxPuntos) {
numeroPuntos = 0;
}
document.getElementById("cargando").innerHTML = textoCargando + puntos;
if (!cargado) {
timerID = setTimeout("fTimer()", 500);
29
}
}
</script >
<style type="text/css">
#cargando {
padding-left:2px; padding-right:2px; background-color:#CC0000; color:#FFFFFF;
font-weight:bold;
right:3px; top:3px; position:fixed;
}
</style>
</head>
<body onload="oculta()">
<div id="cargando">Cargando</div>
<script language="javascript">
timerID = setTimeout("fTimer()", 500);
</script>
</body>
</html>
7.8 ESQUEMA DESPLEGABLE (ie)
Este pequeo ejemplo te permitir construir listas en las que los niveles se pueden abrir
y cerrar a voluntad. Prubalo y personalzalo para tus necesidades.
a) Cdigo JavaScript
Se trata de un script tan simple que apenas necesita comentarios. La funcin recibe
como argumentos un identificador (iden), y busca el elemento HTML cuyo ID sea igual
a este valor, para ello usa el mtodo getElementById( ). Una vez encontrado el elemento
30
tan slo modifica su propiedad display: si est en mostrar (block) lo pone en ocultar
(none) y viceversa.
Quizs lo ms interesante de este script sea que usa cdigo standard, es decir destinado
a navegadores que cumplen con los estndares de la W3C, que en lo que afecta al
DHTML es la normativa del DOM1 y el HTML4. Por tanto este script debe funcionar
en Netscape 6 y en MSIE 6, de hecho funciona a partir de MSIE 5, que slo cumple la
regulacin DOM1 en un 86%.
<script language="JavaScript">
function cambiaEstado(iden)
{
var elhtml = document.getElementById(iden);
if (elhtml.style.display == 'block')
elhtml.style.display = 'none';
else
elhtml.style.display = 'block';
}
</script>
b) Cdigo HTML
Como vemos en lugar de usar el evento onclick se hace la llamada a la funcin
cambiaEstado( ) directamente en el enlace. El argumento de la llamada es el ID del
bloque UL de la lista. Simple.
<body>
<ul>
<li><a href="javascript:cambiaEstado('e1')">entrada 1</a>
<ul id="e1" class="nivel1">
<li>apartado 1 de entrada 1</li>
<li>apartado 2 de entrada 1</li>
</ul>
</li>
<li><a href="javascript:cambiaEstado('e2')">entrada 2</a>
<ul id="e2" class="nivel1">
<li>apartado 1 de entrada 2</li>
<li>apartado 2 de entrada 2 </li>
</ul>
</li>
</ul>
</body>
8. COOKIES
8.1 NOTIFICADOR DE ULTIMA MODIFICACION:
En este ejemplo vamos a ver como usando cookies podemos informar al usuario la fecha de ultima
actualizacion del documento, ademas se le advierte si la pagina fue modificada desde la ultima vez
que el usuario visito la pagina web.
Para realizar este ejemplo necesitamos utilizar cookies con el objetivo de saber cuando visito la web
el usuario por ultima vez.
31
Codigo:
<html><head></head><body>
<CENTER>
<BR>
32
<SCRIPT LANGUAGE="JavaScript">
<!-- Begin
function getCookieVal (offset) {
var endstr = document.cookie.indexOf (";", offset);
if (endstr == -1)
endstr = document.cookie.length;
return unescape(document.cookie.substring(offset, endstr));
}
function GetCookie (name) {
var arg = name + "=";
var alen = arg.length;
var clen = document.cookie.length;
var i = 0;
while (i < clen) {
var j = i + alen;
if (document.cookie.substring(i, j) == arg)
return getCookieVal (j);
i = document.cookie.indexOf(" ", i) + 1;
if (i == 0) break;
}
return null;
}
function SetCookie (name, value) {
var argv = SetCookie.arguments;
var argc = SetCookie.arguments.length;
33
34
SetCookie("cookie_date",cookie_date,expdate);
document.write("<font color='yellow'><br>La pgina ha sido modificada desde tu ltima
visita!</font><br>");
}
// End -->
</SCRIPT>
</FONT>
</TD></TR>
</TABLE>
</CENTER>
</body></html>
35