Programación en JavaScript / Ejemplos de código

De Wikilibros, la colección de libros de texto de contenido libre.

← Operadores en JavaScript Apéndice C. Ejemplos de código Índice →


En este apéndice vamos a estudiar algunos ejemplos de código JavaScript que podemos adaptar a nuestras páginas. En estos ejemplos aparecerán también objetos y clases nuevas que no hemos visto a lo largo del curso, para extender el conocimiento que ya tenemos del código de scripts.

Contenido

[editar] Caso 1: Cómo conseguir que un enlace gane o pierda el foco de entrada.

   <html>
   <head>
   <style type="text/css">
   a:active {color:blue}
   </style>
   <script type="text/javascript">
   function getfocus()
   {
           document.getElementById('w3s').focus();
   }
   
   function losefocus()
   {
           document.getElementById('w3s').blur();
   }
   </script>
   </head>
   
   <body>
   <a id="w3s" href="http://www.google.com">Visita Google.com</a>

//solo por presentacion <form> <input type="button" onclick="getfocus()" value="Coge el foco"> <input type="button" onclick="losefocus()" value="Pierde el foco"> </form> </body> </html>

getElementById es una función de document que permite llamar a un objeto concreto de la página. Esta es la forma normal de acceder a los elementos de la página, aunque como en el caso de los formularios, también es posible acceder a algunos elementos directamente usando sus nombres como propiedades de objetos.

[editar] Caso 2: seleccionar el texto de un cuadro de texto y darle el foco.

   <html>
   <head>
   <script type="text/javascript">
   function setfocus()
   {
           document.forms[0].txt.select();
           document.forms[0].txt.focus();
   }
   </script>
   </head>
   
   <body>
   <form>
   <input type="text" name="txt" size="30" value="¡Hola mundo!"> 
   <input type="button" value="Selecciona texto" onclick="setfocus()"> 
   </form>
   </body>
   </html>

Como podemos ver, es posible conseguir el contenido de los formularios de la página por medio de la matriz forms[] de document.

[editar] Caso 3: obtener y cambiar la URL de un formulario.

   <html>
   <head>
   <script type="text/javascript">
   function getAction()
   {
           var x=document.forms.myForm;
           alert(x.action);
   }
   
   function changeAction(action)
   {
           var x=document.forms.myForm;
           x.action=action;
           alert(x.action);
   }
   </script>
   </head>
   
   <body>
   <form name="myForm" action="ejemplos.php">
   <input type="button" onclick="getAction()" value="Ver el valor del atributo action">
   <br><br>
   <input type="button" onclick="changeAction('hola.php')" value="Cambiar el valor del atributo action">
   </form>
   </body>
   </html>

En este ejemplo podemos ver otra forma de utilizar los formularios en el código JavaScript.

[editar] Caso 4: como actualizar dos iframes al mismo tiempo.

   <html>
   <head>
   <script language="javascript">
   function twoframes()    {
           document.all("frame1").src="frame_c.htm";
           document.all("frame2").src="frame_d.htm";
   }
   </script>
   </head>
   
   <body>
   <iframe src="frame_a.htm" name="frame1"></iframe>
   <iframe src="frame_b.htm" name="frame2"></iframe>
   <br>
   <form>
   <input type="button" onclick="twoframes()" value="Cambiar la URL de los dos iframes">
   </form>
   </body>
   </html>

Escríbanse las cuatro páginas de los frames que se especifican y probar. Es muy sencillo darse cuenta de que la función all nos permite acceder a los distintos elementos de la página, al igual que lo hemos hecho antes de otras formas.

[editar] Caso 5: conocer los datos del navegador.

   <html>
   <body>
   <script type="text/javascript">
   document.write("<p>Navegador: ");
   document.write(navigator.appName + "</p>");
   
   document.write("<p>Versión del navegador: ");
   document.write(navigator.appVersion + "</p>");
   
   document.write("<p>Código: ");
   document.write(navigator.appCodeName + "</p>");
   
   document.write("<p>Plataforma: ");
   document.write(navigator.platform + "</p>");
   
   document.write("<p>Cookies habilitadas: ");
   document.write(navigator.cookieEnabled + "</p>");
   
   document.write("<p>Cabecera de agente de usuario del navegador: ");
   document.write(navigator.userAgent + "</p>");
   </script>
   </body>
   </html>

[editar] Caso 6: conocer los datos relacionados con la pantalla.

   <html>
   <body>
   <script language="javascript">
   document.write("Resolución de pantalla: ");
   document.write(screen.width + "*" + screen.height);
   document.write("<br>");
   document.write("Area visible disponible: ");
   document.write(screen.availWidth + "*" + screen.availHeight);
   document.write("<br>");
   document.write("Resolución de color: ");
   document.write(screen.colorDepth);
   document.write(" bits<br>");
   </script>
   </body>
   </html>

[editar] Caso 7: refrescar el contenido de una página.

   <html>
   <head>
   <script type="text/javascript">
   function refresh()
   {
           window.location.reload();
   }
   </script>
   </head>
   
   <body>
   <form>
   <input type="button" value="Refrescar página" onclick="refresh()">
   </form>
   </body>
   </html>

[editar] Caso 8: Generar un reloj a intervalos de un segundo.

   <html>
   <head>
   <script language="javascript">
   var intval=""
   function start_Int()
   {
           if(intval=="")
           {
                   intval=window.setInterval("start_clock()",1000);
           }
           else
           {
                   stop_Int();
           }
   }
   
   function stop_Int()
   {
           if(intval!="")
           {
                   window.clearInterval(intval);
                   intval="";
                   document.formu.tiempo.value="Tiempo detenido";
           }
   }
   
   function start_clock()
   {
           var d=new Date();
           var sw="am";
           var h=d.getHours();
           var m=d.getMinutes() + "";
           var s=d.getSeconds() + "";
           if(h>12)
           {
                   h-=12;
                   sw="pm";
           }
           if(m.length==1)
           {
                   m="0" + m;
           }
           if(s.length==1)
           {
                   s="0" + s;
           }
           document.formu.tiempo.value=h + ":" + m + ":" + s + " " + sw;
   }
   </script>
   </head>
   
   <body>
   <form id="formu" name="formu">
   <input type="text" name="tiempo" value="Tiempo parado">
   </form>
   <input type="button" value="Empezar" onclick="start_Int()">
   <input type="button" value="Parar" onclick="stop_Int()">
   <p>Este ejemplo actualiza el contenido del cuadro de texto cada segundo. 
   Pulsa "Empezar" para iniciar la función setInterval. Pulsa "Parar" para detener el 
   tiempo con la función clearInterval.</p>
   </body>
   </html>

Estudiese bien este ejemplo. La variable intval contiene un valor que setInterval genera, y con el que podremos detener el intervalo usándolo en la llamada a clearInterval. Especialmente interesante es la función start_clock, que formatea la hora para su visualización.

[editar] Caso 9: Generar otro reloj, fecha y hora a intervalos de un segundo.

<html>
<head>
<title>Proforma de Computadora</title>
<script>
function relojFecha(){
	var mydate=new Date();var year=mydate.getYear();
	if (year < 1000)year+=1900;
	var day=mydate.getDay();
	var month=mydate.getMonth();
	var daym=mydate.getDate();
	if (daym<10)daym="0"+daym;
	var dayarray=new Array("Domingo","Lunes","Martes","Miercoles","Jueves","Viernes","Sabado");
	var montharray=new Array("Enero","Febrero","Marzo","Abril","Mayo","Junio","Julio","Agosto",
	                                             "Septiembre","Octubre","Noviembre","Diciembre");
	var horas = mydate.getHours();
	horas = (horas<10)?"0"+horas:horas;
	var minutos = mydate.getMinutes();
	minutos = (minutos<10)?"0"+minutos:minutos;
	var segundos = mydate.getSeconds();
	segundos = (segundos<10)?"0"+segundos:segundos;
	document.getElementById("idReloj").innerHTML = "<"+"small><"+"font color='000000' face='Verdana'>"+
	                                                dayarray[day]+" "+daym+" de "+montharray[month]+" de "+
                                                       year+" "+horas+":"+minutos+":"+segundos+"<"+"/font><"+"/small>";
	setTimeout('relojFecha()',1000);
}
</script>
</head>
<body onload="relojFecha()">
<p id="idReloj"></p>
</body>
</html>

Téngase en cuenta que, a diferencia del anterior ejemplo, el reloj está orientado a usar setTimeout, que permite lanzar la función relojFecha cada segundo. Por ello, no se puede parar y se lanza usando el evento onload de body.


← Operadores en JavaScript Apéndice C. Ejemplos de código Índice →
Herramientas personales