Foros del Web » Programando para Internet » Javascript »

Javascript ke se ejecute una sola vez

Estas en el tema de Javascript ke se ejecute una sola vez en el foro de Javascript en Foros del Web. Hola! Miren, estaba pensando poner algun efecto diferente en la página principal de uno de mis sites y recordé uno que me parece muy bueno, ...
  #1 (permalink)  
Antiguo 07/09/2004, 20:00
Avatar de Khronos  
Fecha de Ingreso: agosto-2004
Ubicación: Venezuela, PLC
Mensajes: 218
Antigüedad: 19 años, 8 meses
Puntos: 0
Pregunta Javascript ke se ejecute una sola vez

Hola!

Miren, estaba pensando poner algun efecto diferente en la página principal de uno de mis sites y recordé uno que me parece muy bueno, pero hay un problema, creo ke sería algo molesto para el visitante, ke el javascript se ejecute cada vez ke ingrese al "index.htm" :-p ...Como no se nada de javascript, kisiera consultarles si hay forma alguna, por medio de una cookie o incluso un bloke de codigo javascript adicional , para hacer ke el efecto se ejecute, solomante la primera vez ke el visitante ingrese a la página princial y ke una vez ke salga de esta y vuelva de nuevo a ella, por supuesto, no mire de nuevo el efecto .

Dejo el código del javascript para ke lo prueben y me den su opinion sobre lo ke se podría hacer.

<html>
<head>
<title>Shaking Browser</title>
</head>

<body>

<SCRIPT LANGUAGE=JAVASCRIPT TYPE="TEXT/JAVASCRIPT">
now = new Date
expireDate = new Date
expireDate.setMonth(expireDate.getMonth()+6)
lastVisit = new Date (cookieVal("Shake"))

if (lastVisit == 0) {
lastVisit = ""
}


document.cookie = "Shake="+now+";expires=" + expireDate.toGMTString()

function cookieVal(cookieName) {
thisCookie = document.cookie.split("; ")
for (i=0; i<thisCookie.length; i++) {
if (cookieName == thisCookie[i].split("=")[0]) {
return thisCookie[i].split("=")[1]
}
}
return 0
}

</SCRIPT>

<script language="javascript1.2" type="text/javascript">

function shake(n) {
if (window.moveBy){
for (i = 10; i > 0; i--) {
for (j = n; j > 0; j--) {
window.moveBy(0,i);
window.moveBy(i,0);
window.moveBy(0,-i);
window.moveBy(-i,0);
}
}
}
}
shake(25);
</SCRIPT>

<p>COOL JAVASCRIPT!!!!!</p>

</body>
</html>


Por cierto, dentro del código miro algo ke creo se refiere a cookies, pero no tengo idea si será algo ke podría editar para definir ke la ejecución se de una sóla vez.

A la o las personas ke me respondan, de antemano les agradezco la ayuda y ke por favor me explicaran en forma sencilla si pudieren hacerlo.

__________________
When someone dies in the grip of a powerful rage... A curse is born. The curse gathers in that place of death. Those who encounter it will be consumed by its fury.
  #2 (permalink)  
Antiguo 08/09/2004, 08:14
Avatar de claray  
Fecha de Ingreso: agosto-2004
Ubicación: ahora... en Caracas
Mensajes: 345
Antigüedad: 19 años, 8 meses
Puntos: 0
Hola Khronos,

Particularmente, en este script ya esta casi hecho, lo unico necesario es comparar la fecha de la ultima visita antes de hacer el shake():

por lo que la linea en donde esta el shake(25);

habria que cambiarla por lo siguiente:


var fecha1=new Date(lastVisit.getYear(),lastVisit.getMonth(),last Visit.getDay());
var fecha2=new Date(now.getYear(),now.getMonth(),now.getDay());
if ((lastVisit=="")||(fecha1<fecha2)) {shake(5);}

(cambie la cantidad, de 25 a 5, ya que era excesiva, pero entre gustos y colores...)

saludos.
__________________
:pirata: El arte de desarrollar es dejar que los otros lo hagan
  #3 (permalink)  
Antiguo 08/09/2004, 12:41
Avatar de Khronos  
Fecha de Ingreso: agosto-2004
Ubicación: Venezuela, PLC
Mensajes: 218
Antigüedad: 19 años, 8 meses
Puntos: 0
Muy agradecido

Hola claray,

Muchas gracias por responder y prestarme ayuda!

Probé lo ke me indicaste y funciona perfectamente

Saludos
__________________
When someone dies in the grip of a powerful rage... A curse is born. The curse gathers in that place of death. Those who encounter it will be consumed by its fury.
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 18:24.