Foros del Web » Programando para Internet » Javascript »

[SOLUCIONADO] como repetir un script

Estas en el tema de como repetir un script en el foro de Javascript en Foros del Web. Hola, estoy haciendo una web, el detalle es que quiero poner 3 relojes, puse el primero que es hora local, otro que es hora UTC ...
  #1 (permalink)  
Antiguo 30/06/2013, 02:02
 
Fecha de Ingreso: febrero-2013
Ubicación: lima
Mensajes: 2
Antigüedad: 11 años, 2 meses
Puntos: 0
Pregunta como repetir un script

Hola, estoy haciendo una web, el detalle es que quiero poner 3 relojes, puse el primero que es hora local, otro que es hora UTC y para finalizar el horario de otro lugar segun horario UTC, bueno en este ultimo repeti el codigo del primero, ahora que hize eso, desaparece el primer reloj, hay alguna manera de poder repetir estos relojes?, estoy trabajando con etiquetas div
Código PHP:
<!-- Script reloj -->

<
script language="JavaScript" type="text/javascript">
 <!--

function 
show5(){
if (!
document.layers&&!document.all&&!document.getElementById)
return

 var 
Digital=new Date()
 var 
hours=Digital.getHours()
 var 
minutes=Digital.getMinutes()
 var 
seconds=Digital.getSeconds()

var 
dn="PM"
if (hours<12)
dn="AM"
if (hours>12)
hours=hours-12
if (hours==0)
hours=12

 
if (minutes<=9)
 
minutes="0"+minutes
 
if (seconds<=9)
 
seconds="0"+seconds
//change font size here to your desire
myclock="Hora Local:   "+hours+":"+minutes+":"
 
+seconds+" "+dn+"</b></font>"
if (document.layers){
document.layers.liveclock.document.write(myclock)
document.layers.liveclock.document.close()
}
else if (
document.all)
liveclock.innerHTML=myclock
else if (document.getElementById)
document.getElementById("reloj").innerHTML=myclock
setTimeout
("show5()",1000)
 }

window.onload=show5
 
//-->
 
</script> 
en el html puse esto

Código PHP:
<div id="reloj"></div
gracias
  #2 (permalink)  
Antiguo 30/06/2013, 04:59
Avatar de pzin
Moderata 😈
 
Fecha de Ingreso: julio-2002
Ubicación: Islas Canarias
Mensajes: 10.488
Antigüedad: 21 años, 9 meses
Puntos: 2114
Respuesta: como repetir un script

No sé si será la mejor forma, porque de JavaScript mucho no sé, pero podrías pasarle algunos parámetros a la función y calcular la hora:

Código Javascript:
Ver original
  1. function show5(id, dif) {
  2.   if (!document.layers && !document.all && !document.getElementById) return
  3.  
  4.   dif = typeof dif !== 'undefined' ? dif : 0
  5.  
  6.   var Digital = new Date()
  7.   var res = Digital.setHours(dif)
  8.  
  9.   var hours = Digital.getHours()
  10.   var minutes = Digital.getMinutes()
  11.   var seconds = Digital.getSeconds()
  12.  
  13.   var dn = "PM"
  14.   if (hours < 12) dn = "AM"
  15.   if (hours > 12) hours = hours - 12
  16.   if (hours == 0) hours = 12
  17.  
  18.   if (minutes <= 9) minutes = "0" + minutes
  19.   if (seconds <= 9) seconds = "0" + seconds
  20.   //change font size here to your desire
  21.   myclock = "Hora Local:   <b>" + hours + ":" + minutes + ":" + seconds + " " + dn + "</b>"
  22.   if (document.layers) {
  23.     document.layers.liveclock.document.write(myclock)
  24.     document.layers.liveclock.document.close()
  25.   } else if (document.all) liveclock.innerHTML = myclock
  26.   else if (document.getElementById) document.getElementById(id).innerHTML = myclock
  27.   setTimeout("show5('" + id + "'," + dif + ")", 1000)
  28. }
  29.  
  30. window.onload = show5('reloj1')
  31. window.onload = show5('reloj2', -2)
  32. window.onload = show5('reloj3', 7)

Y luego en el HTML creas los elementos con los identificadores que indicas en los parámetros de la función:

Código HTML:
Ver original
  1. <div id="reloj1"></div>
  2. <div id="reloj2"></div>
  3. <div id="reloj3"></div>

Quité la etiqueta font, ya que lleva obsoleta algunos añitos.

Para las dudas sobre JavaScript, mejor publicar en el foro de JavaScript.

Etiquetas: html
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 10:56.