Foros del Web » Programando para Internet » Javascript »

Evento onload, disparar solo una vez

Estas en el tema de Evento onload, disparar solo una vez en el foro de Javascript en Foros del Web. Hola chicos, estoy trabajando en crear un evento que se dispare cuando se accesa una pagina, el problema es, que nada mas deseo que el ...
  #1 (permalink)  
Antiguo 07/02/2011, 21:24
Avatar de JessicaTJ  
Fecha de Ingreso: enero-2007
Ubicación: 127.0.0.1
Mensajes: 472
Antigüedad: 17 años, 10 meses
Puntos: 25
Evento onload, disparar solo una vez

Hola chicos, estoy trabajando en crear un evento que se dispare cuando se accesa una pagina, el problema es, que nada mas deseo que el evento se efectue solo una vez, no cada vez que se accesa una pagina diferente dentro del sitio, el evento actualmente lo creo en el tag del body, obvia razon que por eso se efectua cada vez que se accesa a una pagina, mi pregunta es, hay manera de realizar esta accion de alguna manera que solo se efectue una sola vez?

El codigo es algo asi:
Código Javascript:
Ver original
  1. <script language="javascript">
  2. var timeoutID = null;
  3. /* Must pass in the "anchors" ID so that Lytebox can call the correct "onclick" handler... */
  4. function loadLytebox(id) {
  5.     if (typeof myLytebox != 'undefined') {
  6.         // if the myLytebox object exists, start it up!
  7.         myLytebox.start(document.getElementById(id));
  8.     } else {
  9.         // wait 1/10th of a second and attempt loading again...
  10.         if (timeoutID) { clearTimeout(timeoutID); }
  11.         timeoutID = setTimeout('loadLytebox("'+id+'")', 100);
  12.     }
  13. }
  14. </script>

Y en el body:
Código HTML:
Ver original
  1. <body onLoad="loadLytebox('promocion');">

De seguro es algo facil pero la verdad es que ahorita ya no doy para mas jijijiji.

De verdad agradecere mil su ayuda chicos !!!
__________________
٩(͡๏̯͡๏)۶ || ٩(͡๏̯͡๏)۶
  #2 (permalink)  
Antiguo 07/02/2011, 21:56
Avatar de Artificium  
Fecha de Ingreso: enero-2011
Mensajes: 492
Antigüedad: 13 años, 10 meses
Puntos: 81
Respuesta: Evento onload, disparar solo una vez

Si se te ejecuta cada vez que cargas alguna página eso quiere decir que estás usando php con includes y en esos includes está la etiqueta body, sino no veo como es que se pueda ejecutar en cada página.

Bueno si ese es el caso lo que tienes que hacer es crear un campo oculto en la página donde quieres que se ejecute esa función, si el script detecta la presencia de ese campo se ejecuta la función sino no se ejecuta.

En caso de que quieras que se ejecute una sola vez así se recargue o se regrese a esa página donde si se ejecuta la función, pues la cosa se complicaría más. Tendrías que usar una variable de sesión, bueno, espero que mi respuesta te haya servido de algo.
  #3 (permalink)  
Antiguo 07/02/2011, 21:59
Avatar de JessicaTJ  
Fecha de Ingreso: enero-2007
Ubicación: 127.0.0.1
Mensajes: 472
Antigüedad: 17 años, 10 meses
Puntos: 25
Respuesta: Evento onload, disparar solo una vez

Cita:
Iniciado por Artificium Ver Mensaje
Si se te ejecuta cada vez que cargas alguna página eso quiere decir que estás usando php con includes y en esos includes está la etiqueta body, sino no veo como es que se pueda ejecutar en cada página.
Exactamente, estoy usando un include de un header que tiene el tag body, por eso se ejecuta, entonces mi pregunta es, hay alguna manera de ejecutar esa funcion pero sin incluirla en el tag body?
__________________
٩(͡๏̯͡๏)۶ || ٩(͡๏̯͡๏)۶
  #4 (permalink)  
Antiguo 08/02/2011, 08:51
Avatar de Artificium  
Fecha de Ingreso: enero-2011
Mensajes: 492
Antigüedad: 13 años, 10 meses
Puntos: 81
Respuesta: Evento onload, disparar solo una vez

Si la hay, pero daría igual, no probaste mi consejo con el campo oculto?
  #5 (permalink)  
Antiguo 08/02/2011, 11:48
Avatar de JessicaTJ  
Fecha de Ingreso: enero-2007
Ubicación: 127.0.0.1
Mensajes: 472
Antigüedad: 17 años, 10 meses
Puntos: 25
Respuesta: Evento onload, disparar solo una vez

Cita:
Iniciado por Artificium Ver Mensaje
Si la hay, pero daría igual, no probaste mi consejo con el campo oculto?
Disculpa Artificium, como le haria en ese caso?
__________________
٩(͡๏̯͡๏)۶ || ٩(͡๏̯͡๏)۶
  #6 (permalink)  
Antiguo 10/02/2011, 16:58
Avatar de Artificium  
Fecha de Ingreso: enero-2011
Mensajes: 492
Antigüedad: 13 años, 10 meses
Puntos: 81
Respuesta: Evento onload, disparar solo una vez

OK mira, la función que pones en el body déjalo como está, al principio de tu achivo pones esto, supongo que iría en el archivo donde defines el encabezado.

Código:
<?php 
    session_start();
?>
En la parte final de archivo colocas esto:

Código:
<?php 
    $_SESSION['ss'] = 1;   // en lugar de 'ss' puedes poner lo que te da la gana
?>
En la parte de tu función JavaScript harías algo así:

Código:
function loadLytebox(id) {
     var ss = '<?php echo $_SESSION['ss'] ?>';  
    /*Obviamente si cambias el otro 'ss' debes cambiar también este */
    if (!ss) {
       // Esto se ejecutaría solamente en la primera carga del archivo, mas no en las siguientes
    }
}
Aunque te dije que se podría hacer con un campo oculto, mejor es capturar el valor de la variable de sesión directamente en JavaScript. Te explico un poco, en la primera corrida el valor $_SESSION['ss'] va ser vacío, ese valor va a ser capturado por la variable JavaScript ss, de modo que si es vacía (if (!ss)) va a ejecutar algo, cuando la ejecución llegue al final del archivo se le dará valor a esa variable de sesión, de modo que en la siguiente corrida o recarga el valor de la variable de sesión $_SESSION['ss'] tendrá valor igual a 1, con lo cual la variable JavaScript ss también tendrá valor igual a 1, con lo cual ya no ejecutará el código que dispongas. Espero que te sirva.

Última edición por Artificium; 10/02/2011 a las 18:02

Etiquetas: onload, eventos
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:31.