Foros del Web » Programando para Internet » Javascript » Frameworks JS »

Temporizador para pasar al otro DIV

Estas en el tema de Temporizador para pasar al otro DIV en el foro de Frameworks JS en Foros del Web. Buenas, pues yo tengo este codigo: Código: <script type="text/javascript"> function preloader(){ var xmlhttp=false; try{ xmlhttp = new ActiveXObject("Msxml2.XMLHTTP"); }catch(e){ try{ xmlhttp = new ActiveXObject("Microsoft.XMLHTTP"); }catch(E){ ...
  #1 (permalink)  
Antiguo 31/08/2009, 20:39
 
Fecha de Ingreso: enero-2009
Mensajes: 119
Antigüedad: 15 años, 10 meses
Puntos: 1
Temporizador para pasar al otro DIV

Buenas, pues yo tengo este codigo:

Código:
<script type="text/javascript">
function preloader(){
        var xmlhttp=false;
        try{
                xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
        }catch(e){
                try{
                        xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
                }catch(E){
                        xmlhttp = false;
                }
        }

        if(!xmlhttp && typeof XMLHttpRequest!='undefined'){
                xmlhttp = new XMLHttpRequest();
        }
        return xmlhttp;
}

function publicidad(url){
        var contenido, preloader;
        contenido = document.getElementById('paginacapa');
        preloader = document.getElementById('distractor');
        //creamos el objeto XMLHttpRequest
        ajax=preloader(); 
        ajax.open("GET", url,true); 
        ajax.onreadystatechange=function(){
                if(ajax.readyState==1){
                }else if(ajax.readyState==4){
                        if(ajax.status==200){
                                contenido.innerHTML = ajax.responseText; 
                        }
                }
        }
        ajax.send(null);
}
</script>

<div id="distractor" align="center">
<table width="100%" border="0">
  <tr>
    <td>  
    <div align="center">
     IMAGEN
    </div>
    </td>
  </tr>
  <tr>
    <td>
    <div align="center">
    <img src="images/icons/cargando.gif" width="16" height="16" />
    </div>
    </td>
  </tr>
  <tr>
    <td>
    <div align="center">
    <span class="ldesc">
    <strong>XXXXXXXXXXXXXXXXXXXXX</strong><br> 
    XXXXXXXXXX</span></div>
    </div>
    </td>
  </tr>
</table>
</div>
<div id="paginacapa" style="display:none">
CONTENIDO DE LA PAGINA DE VERDAD
</div>
Entonces, yo ahora quiero añadir un temporizador de 7 segundos, y cuando pasen esos 7 segundos cargue lo que viene siendo la pagina: <div id="paginacapa" style="display:none">

Como podria hacer esto?

Tambien quisiera añadir un link directo, para saltarte lo que viene siendo "la carga", esto tampoco se hacerlo :(, haber si alguien me podeis ayudar.

Muchisimas gracias.

Última edición por GENESISBM; 31/08/2009 a las 20:47
  #2 (permalink)  
Antiguo 31/08/2009, 21:54
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años, 5 meses
Puntos: 2135
Respuesta: Temporizador para pasar al otro DIV

Para agregar un temporizador necesitas usar window.setInterval para registrar la función a ejecutar.

Saludos.
  #3 (permalink)  
Antiguo 01/09/2009, 04:58
 
Fecha de Ingreso: enero-2009
Mensajes: 119
Antigüedad: 15 años, 10 meses
Puntos: 1
Respuesta: Temporizador para pasar al otro DIV

Cita:
Iniciado por GatorV Ver Mensaje
Para agregar un temporizador necesitas usar window.setInterval para registrar la función a ejecutar.

Saludos.
Gracias Gator, mira, he hecho lo siguiente, pero sigue sin cargarme el div que quiero, te copio el codigo:

Código:
<!-- INCLUDE overall_header.html -->
<script type="text/javascript">
<!--
function temporizador ()
{
  window.setInterval("pagina()", 7000);
}
function pagina()
{
function preloader(){
        var xmlhttp=false;
        try{
                xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
        }catch(e){
                try{
                        xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
                }catch(E){
                        xmlhttp = false;
                }
        }

        if(!xmlhttp && typeof XMLHttpRequest!='undefined'){
                xmlhttp = new XMLHttpRequest();
        }
        return xmlhttp;
}
function publicidad(url){
        var contenido, preloader;
        contenido = document.getElementById('paginacapa');
        preloader = document.getElementById('distractor');
        //creamos el objeto XMLHttpRequest
        ajax=preloader(); 
        ajax.open("GET", url,true); 
        ajax.onreadystatechange=function(){
                if(ajax.readyState==1){
                }else if(ajax.readyState==4){
                        if(ajax.status==200){
                                contenido.innerHTML = ajax.responseText; 
                        }
                }
        }
        ajax.send(null);
}
}
//-->
</script>
<div id="distractor" align="center">
AQUI TENGO LA PAGINA QUE SE ME DEBERIA CARGAR PRIMERO, VA TODO PERFECTO
<body onload="temporizador()">
</div>
<div id="paginacapa" style="display:none">
PAGINA QUE DEBERIA MOSTRARSE A LOS 7 SEGUNDOS DE CARGAR LA ANTERIOR, NO CARGA
</div>
Pues este es el codigo que tengo ahora mismo, y yo diria que lo tengo todo bien, no? Pues se queda fijo el DIV "distractor", haber si me podeis ayudar :(
  #4 (permalink)  
Antiguo 01/09/2009, 05:08
Avatar de Adler
Colaborador
 
Fecha de Ingreso: diciembre-2006
Mensajes: 4.671
Antigüedad: 17 años, 10 meses
Puntos: 126
Respuesta: Temporizador para pasar al otro DIV

Hola

Prueba de esta otra manera

Código javascript:
Ver original
  1. <script type="text/javascript">
  2. <!--
  3. function preloader(){
  4.         var xmlhttp=false;
  5.         try{
  6.                 xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
  7.         }catch(e){
  8.                 try{
  9.                         xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
  10.                 }catch(E){
  11.                         xmlhttp = false;
  12.                 }
  13.         }
  14.  
  15.         if(!xmlhttp && typeof XMLHttpRequest!='undefined'){
  16.                 xmlhttp = new XMLHttpRequest();
  17.         }
  18.         return xmlhttp;
  19. }
  20.  
  21. function publicidad(url){
  22.         var contenido, preloader;
  23.         contenido = document.getElementById('paginacapa');
  24.         preloader = document.getElementById('distractor');
  25.         //creamos el objeto XMLHttpRequest
  26.         ajax=preloader();
  27.         ajax.open("GET", url,true);
  28.         ajax.onreadystatechange=function(){
  29.                 if(ajax.readyState==1){
  30.                 }else if(ajax.readyState==4){
  31.                         if(ajax.status==200){
  32.                                 contenido.innerHTML = ajax.responseText;
  33.                         }
  34.                 }
  35.         }
  36.         ajax.send(null);
  37. }
  38.  
  39. window.onload = function () {setInterval("publicidad()", 7000);};
  40. //-->
  41. </script>
  42. <div id="distractor" align="center">
  43. AQUI TENGO LA PAGINA QUE SE ME DEBERIA CARGAR PRIMERO, VA TODO PERFECTO
  44. <body>
  45. </div>
  46. <div id="paginacapa" style="display:none">
  47. PAGINA QUE DEBERIA MOSTRARSE A LOS 7 SEGUNDOS DE CARGAR LA ANTERIOR, NO CARGA
  48. </div>

Suerte
__________________
Los formularios se envían/validan con un botón Submit
<input type="submit" value="Enviar" style="background-color:#0B5795; font:bold 10px verdana; color:#FFF;" />
  #5 (permalink)  
Antiguo 01/09/2009, 05:44
 
Fecha de Ingreso: enero-2009
Mensajes: 119
Antigüedad: 15 años, 10 meses
Puntos: 1
Respuesta: Temporizador para pasar al otro DIV

Nada, sigue sin cargar :(, se que en el primer div! Gracias de todas formas, haber si encontramos la solución
  #6 (permalink)  
Antiguo 01/09/2009, 06:02
Avatar de Adler
Colaborador
 
Fecha de Ingreso: diciembre-2006
Mensajes: 4.671
Antigüedad: 17 años, 10 meses
Puntos: 126
Respuesta: Temporizador para pasar al otro DIV

Hola

El div paginacapa lo tienes oculto y no veo que le cambies ese estado prueba así

Cita:
contenido.style.display = "block"
contenido.innerHTML = ajax.responseText;
Suerte
__________________
Los formularios se envían/validan con un botón Submit
<input type="submit" value="Enviar" style="background-color:#0B5795; font:bold 10px verdana; color:#FFF;" />
  #7 (permalink)  
Antiguo 01/09/2009, 07:12
 
Fecha de Ingreso: enero-2009
Mensajes: 119
Antigüedad: 15 años, 10 meses
Puntos: 1
Respuesta: Temporizador para pasar al otro DIV

Nada, lo he puesto así, y sigue igual:

Código:
<script type="text/javascript">
<!--
function preloader(){
        var xmlhttp=false;
        try{
                xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
        }catch(e){
                try{
                        xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
                }catch(E){
                        xmlhttp = false;
                }
        }
 
        if(!xmlhttp && typeof XMLHttpRequest!='undefined'){
                xmlhttp = new XMLHttpRequest();
        }
        return xmlhttp;
}
 
function publicidad(url){
        var contenido, preloader;
        contenido = document.getElementById('paginacapa');
        preloader = document.getElementById('distractor');
        //creamos el objeto XMLHttpRequest
        ajax=preloader(); 
        ajax.open("GET", url,true); 
        ajax.onreadystatechange=function(){
                if(ajax.readyState==1){
                }else if(ajax.readyState==4){
                        if(ajax.status==200){
							    contenido.style.display = "block"
                                contenido.innerHTML = ajax.responseText; 
                        }
                }
        }
        ajax.send(null);
}
 
window.onload = function () {setInterval("publicidad()", 7000);};
//-->
</script>
  #8 (permalink)  
Antiguo 01/09/2009, 07:45
Avatar de Adler
Colaborador
 
Fecha de Ingreso: diciembre-2006
Mensajes: 4.671
Antigüedad: 17 años, 10 meses
Puntos: 126
Respuesta: Temporizador para pasar al otro DIV

Hola

¿Donde le estás pasando el argumento a la funcion, publicidad(url)?

Suerte
__________________
Los formularios se envían/validan con un botón Submit
<input type="submit" value="Enviar" style="background-color:#0B5795; font:bold 10px verdana; color:#FFF;" />
  #9 (permalink)  
Antiguo 01/09/2009, 07:55
 
Fecha de Ingreso: enero-2009
Mensajes: 119
Antigüedad: 15 años, 10 meses
Puntos: 1
Respuesta: Temporizador para pasar al otro DIV

Cita:
Iniciado por Adler Ver Mensaje
Hola

¿Donde le estás pasando el argumento a la funcion, publicidad(url)?

Suerte
No es que tenga mucha idea de AJAX, el codigo me lo pasaron, alomejor tiene algun fallito, si pudieras decirme tu :\, lo unico que tengo es lo que ves, mas los DIV correspondientes.

Gracias por la ayuda
  #10 (permalink)  
Antiguo 01/09/2009, 14:13
Avatar de Adler
Colaborador
 
Fecha de Ingreso: diciembre-2006
Mensajes: 4.671
Antigüedad: 17 años, 10 meses
Puntos: 126
Respuesta: Temporizador para pasar al otro DIV

Hola

Un par de cambios

function publicidad(url)

por

function publicidad()

y esto

ajax.open("GET", url,true);

por esto otro

ajax.open("GET", "pagina_que_hara_el_proceso.asp?param1="+valor1+"&param2="+valor2",true);

Si no tienes que pasar ningún valor quita lo que está en rojo

Suerte
__________________
Los formularios se envían/validan con un botón Submit
<input type="submit" value="Enviar" style="background-color:#0B5795; font:bold 10px verdana; color:#FFF;" />
  #11 (permalink)  
Antiguo 01/09/2009, 19:49
 
Fecha de Ingreso: enero-2009
Mensajes: 119
Antigüedad: 15 años, 10 meses
Puntos: 1
Respuesta: Temporizador para pasar al otro DIV

Código:
<!-- INCLUDE overall_header.html -->
<script type="text/javascript">
<!--
function preloader(){
        var xmlhttp=false;
        try{
                xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
        }catch(e){
                try{
                        xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
                }catch(E){
                        xmlhttp = false;
                }
        }
 
        if(!xmlhttp && typeof XMLHttpRequest!='undefined'){
                xmlhttp = new XMLHttpRequest();
        }
        return xmlhttp;
}
 
function publicidad(){
        var contenido, preloader;
		contenido.style.display = "block"
        contenido.innerHTML = ajax.responseText;
        contenido = document.getElementById('paginacapa');
        preloader = document.getElementById('distractor');
        //creamos el objeto XMLHttpRequest
        ajax=preloader(); 
        ajax.open("GET", "pagina_que_hara_el_proceso.asp",true);  
        ajax.onreadystatechange=function(){
                if(ajax.readyState==1){
                }else if(ajax.readyState==4){
                        if(ajax.status==200){
							    contenido.style.display = "block"
                                contenido.innerHTML = ajax.responseText; 
                        }
                }
        }
        ajax.send(null);
}
 
window.onload = function () {setInterval("publicidad()", 7000);};
//-->
</script>

<div id="distractor" align="center">
CARGA PERFECTAMENTE
</div>
<div id="paginacapa" style="display:none">
NO CARGA, ES EL CONTENIDO, VAMOS LA PAGINA EN SI
</div>
Tengo esto, y sigue sin cargar la pagina principal, nose que hago mal... en esta linea que tengo que poner?

ajax.open("GET", "pagina_que_hara_el_proceso.asp",true);

Me he fijado que en Internet explorer, a los 7 segundos, me salta un error, de estos que abajo a la izquierda, sale la señal de exclamación y me pone:

"Style" es nulo o no es un objeto
arcade.php

Nose si ayudara, me imagino que estara algo mal del codigo ajax, decir que yo solo tengo este archivo, no llamo a ningun otro, ni nada (nose del tema) y que es un foro PHPBB.
  #12 (permalink)  
Antiguo 02/09/2009, 06:00
Avatar de Adler
Colaborador
 
Fecha de Ingreso: diciembre-2006
Mensajes: 4.671
Antigüedad: 17 años, 10 meses
Puntos: 126
Respuesta: Temporizador para pasar al otro DIV

Hola

Algo básico. Tienes dos páginas (pagina1.html y pagina2.asp)

En pagina1 metes el código que tienes y cambias estas lineas

ajax.open("GET", "pagina_que_hara_el_proceso.asp",true);

por esta otra

ajax.open("GET", "pagina2.asp",true);

y

var contenido, preloader;
contenido.style.display = "block"
contenido.innerHTML = ajax.responseText;


por

var contenido, preloader;


En pagina2.asp tienes algo como, en tu caso en PHP

Response.Write "Esto es una prueba"

Lo que ocurrirá es que cuando abras pagina1.html y transcurran 7 segundos se rellenará el div (paginacapa) con el texto "Esto es una prueba"

Un tuto muy básico

Suerte
__________________
Los formularios se envían/validan con un botón Submit
<input type="submit" value="Enviar" style="background-color:#0B5795; font:bold 10px verdana; color:#FFF;" />
  #13 (permalink)  
Antiguo 02/09/2009, 07:00
 
Fecha de Ingreso: enero-2009
Mensajes: 119
Antigüedad: 15 años, 10 meses
Puntos: 1
Respuesta: Temporizador para pasar al otro DIV

Nada... Ahora me da otro fallo por eso, el objeto no acepta la propiedad o metodo, decir que yo tengo codigo y Div's en la misma pagina, así, que yo no tengo que llamar a ninguna pagina en cuestión, yo tengo que llamar al DIV para que se muestre, todo el codigo, vamos, yo tengo exactamente lo que te he pasado (con la pagina dentro, y lo que quiero mostrar, dentro tambien)

Pero nada, he hecho los cambios, y aun haciendolo como prueba, y colocando una pagina .asp, con lo que me has dicho dentro, da el mismo fallo.

Gracias por toda la ayuda, hber si conseguimos sacarlo adelante.
  #14 (permalink)  
Antiguo 02/09/2009, 07:42
Avatar de Adler
Colaborador
 
Fecha de Ingreso: diciembre-2006
Mensajes: 4.671
Antigüedad: 17 años, 10 meses
Puntos: 126
Respuesta: Temporizador para pasar al otro DIV

Hola

Prueba ahora

pagina1.html

Código javascript:
Ver original
  1. <html>
  2. <head>
  3. <script type="text/javascript">
  4. <!--
  5. var ns4 = (document.layers)? true:false
  6. var ie4 = (document.all)? true:false
  7. var ns6 = (document.getElementById)? true:false
  8.  
  9. function captura_objeto(idnombre) {
  10.     if (ns6)
  11.     {
  12.     return document.getElementById(idnombre);
  13.     }
  14.     else if (ie4)
  15.     {
  16.     return document.all[idnombre];
  17.     }
  18.     else if (ns4)
  19.     {
  20.     return document.layers[idnombre];
  21.     }
  22.     else
  23.     {
  24.     return null;
  25.     }
  26. }
  27.  
  28.  
  29. function creaAjax(){
  30.     var ajaxs = ["Msxml2.XMLHTTP","Msxml2.XMLHTTP.4.0","Msxml2.XMLH TTP.5.0","Msxml2.XMLHTTP.3.0","Microsoft.XMLHTTP"];
  31.     var ajax = false;
  32.     for(var i=0 ; !ajax && i<ajaxs.length ; i++){
  33.         try{
  34.             ajax = new ActiveXObject(ajaxs[i]);   // Internet Explorer
  35.         }
  36.         catch(e) {
  37.             ajax = false;
  38.         }
  39.     }
  40.     if(!ajax && typeof XMLHttpRequest!='undefined') {
  41.         ajax = new XMLHttpRequest();  // Firefox, Opera 8.0+, Safari
  42.     }
  43.     return ajax;
  44. }
  45.  
  46.  
  47. function publicidad(){
  48. var ajax=creaAjax();
  49. var contenido = captura_objeto("paginacapa");
  50. var preloader = captura_objeto("distractor");
  51. ajax.open("GET","pagina2.asp",true);
  52. ajax.onreadystatechange = function() {
  53.  
  54.         if (ajax==null){
  55.         alert ("Tu navegador web no soporta AJAX!");
  56.         return;
  57.     }
  58.  
  59.      if (ajax.readyState==4){
  60.                        if(ajax.status==200){          
  61.             contenido.style.display = "block"
  62.                                         contenido.innerHTML = ajax.responseText;
  63.                    }
  64.                        else if (ajax.status==404)
  65.                                              {
  66.  
  67.                                     objetosel.innerHTML = "La dirección no existe";
  68.                                              }
  69.                                      else
  70.                                              {
  71.                                     objetosel.innerHTML = "Error: " + ajax.status;
  72.                                              }
  73.                                     }
  74.                   }
  75.    
  76.     //ajax.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
  77.              ajax.send(null);
  78.             //return
  79. }
  80.  
  81.  
  82. window.onload = function () {setInterval("publicidad()", 7000);};
  83. //-->
  84. </script>
  85.  
  86. <div id="distractor" align="center">
  87. CARGA PERFECTAMENTE
  88. </div>
  89. <div id="paginacapa" style="display:none">
  90. NO CARGA, ES EL CONTENIDO, VAMOS LA PAGINA EN SI
  91. </div>

pagina2.asp

Código asp:
Ver original
  1. <&#37;
  2. Response.Write "Esto es una pruba"
  3. %>

Suerte
__________________
Los formularios se envían/validan con un botón Submit
<input type="submit" value="Enviar" style="background-color:#0B5795; font:bold 10px verdana; color:#FFF;" />
  #15 (permalink)  
Antiguo 02/09/2009, 08:24
 
Fecha de Ingreso: enero-2009
Mensajes: 119
Antigüedad: 15 años, 10 meses
Puntos: 1
Respuesta: Temporizador para pasar al otro DIV

Así si que va, pero no es lo que yo quiero, tu ahi haces que cargue primero una pagina, y despues a los 7 segundos salga otra, y yo lo que quiero, es que salga primero una pagina, esta desaparezca, y aparezca la otra.

Otra cosa, tu ahi haces que aparezca una pagina, y si quiero hacer aparecer el <DIV> "Pagina capa? Como lo tengo que hacer?

Lo que nose, es porque me da fallo cuando añado:

<!-- IF S_PLAY_FULL -->
<!-- INCLUDE overall_header.html -->

Me da el siguiente fallo, y no va la pagina :\

Parse error: parse error, unexpected $end in C:\AppServ\www\Autogol\includes\template.php(187) : eval()'d code on line 89

Muchas gracias por la ayuda
  #16 (permalink)  
Antiguo 02/09/2009, 15:30
Avatar de Adler
Colaborador
 
Fecha de Ingreso: diciembre-2006
Mensajes: 4.671
Antigüedad: 17 años, 10 meses
Puntos: 126
Respuesta: Temporizador para pasar al otro DIV

Hola

Cita:
Iniciado por GENESISBM Ver Mensaje
Así si que va, pero no es lo que yo quiero, tu ahi haces que cargue primero una pagina, y despues a los 7 segundos salga otra, y yo lo que quiero, es que salga primero una pagina, esta desaparezca, y aparezca la otra.

Otra cosa, tu ahi haces que aparezca una pagina, y si quiero hacer aparecer el <DIV> "Pagina capa? Como lo tengo que hacer?

Lo que nose, es porque me da fallo cuando añado:

<!-- IF S_PLAY_FULL -->
<!-- INCLUDE overall_header.html -->

Me da el siguiente fallo, y no va la pagina :\

Parse error: parse error, unexpected $end in C:\AppServ\www\Autogol\includes\template.php(187) : eval()'d code on line 89

Muchas gracias por la ayuda
¿Estás hablando de usar iframe o hacer una redirección a otra página cuando transcurra 7 segundos o quieres refrescar una parte o la totalidad de la página sin redireccionar a los 7 segundos, ....?
__________________
Los formularios se envían/validan con un botón Submit
<input type="submit" value="Enviar" style="background-color:#0B5795; font:bold 10px verdana; color:#FFF;" />
  #17 (permalink)  
Antiguo 02/09/2009, 15:52
 
Fecha de Ingreso: enero-2009
Mensajes: 119
Antigüedad: 15 años, 10 meses
Puntos: 1
Respuesta: Temporizador para pasar al otro DIV

Mira, yo quiero hacer exactamente esto:

Entra en esta pagina que te pongo a continuación, y le das a un juego, al que quieras (no hace falta registrarse) y veras que te aparece una ventana de publicidad y seguidamente se carga el juego en 7 segundos.

Lo que quiero hacer es exactamente eso, si te fijas todo es la misma URL.

Esta es la pagina. Muchas gracias por toda la ayuda Adler ^^

http://www.elbuscajuegos.com/
  #18 (permalink)  
Antiguo 02/09/2009, 20:32
Avatar de deirdre  
Fecha de Ingreso: mayo-2009
Mensajes: 690
Antigüedad: 15 años, 6 meses
Puntos: 45
Respuesta: Temporizador para pasar al otro DIV

Hola...

En la página que mencionas lo que tienen es simplemente un refresh de 7 segundos y un enlace corriente para saltarte los 7 segundos.

No lo he analizado a fondo, pero yo no veo ajax ni javascript (para la recarga) por ningún lado. Esto si está en el código de la página de espera:

Código HTML:
<meta http-equiv="Refresh" content="7; url=http://www.elbuscajuegos.com/juegos-online/1892/mario-ghost-house.html"> 
Bye
  #19 (permalink)  
Antiguo 02/09/2009, 21:06
 
Fecha de Ingreso: enero-2009
Mensajes: 119
Antigüedad: 15 años, 10 meses
Puntos: 1
Respuesta: Temporizador para pasar al otro DIV

Cita:
Iniciado por deirdre Ver Mensaje
Hola...

En la página que mencionas lo que tienen es simplemente un refresh de 7 segundos y un enlace corriente para saltarte los 7 segundos.

No lo he analizado a fondo, pero yo no veo ajax ni javascript (para la recarga) por ningún lado. Esto si está en el código de la página de espera:

Código HTML:
<meta http-equiv="Refresh" content="7; url=http://www.elbuscajuegos.com/juegos-online/1892/mario-ghost-house.html"> 
Bye
Entonces como hacen, para que la URL de "espera", sea la misma que a la que te vas a dirigir? Ademas, que la pagina en la cual vas a entrar, cuando se va la de "espera", ya esta cargada.

Gracias.
  #20 (permalink)  
Antiguo 03/09/2009, 18:38
Avatar de deirdre  
Fecha de Ingreso: mayo-2009
Mensajes: 690
Antigüedad: 15 años, 6 meses
Puntos: 45
Respuesta: Temporizador para pasar al otro DIV

Hola

Lo puedes hacer perfectamente utilizando javascript y un poco de html/css.

Yo no he analizado la página que pusiste, pero creo ver que no tiene nada de ajax. Ya sabes que se pueden obtener resultados iguales (o muy similares) utilizando distintos medios.

Te propongo que hagas lo siguiente:

PRIMERO:
Construye la página que lleva el juego (o cualquier otro contenido) de forma normal (doctype, html, css, flash). Esta será la única página (aunque produzca la impresión de que hay dos páginas).

SEGUNDO:
Creas con javascript y css una capa (un div) al 100% de ancho y alto que se muestre al cargarse la página. Esta página puede tener un diseño de fondo y colores igual a la página principal, y es la que lleva la leyenda de 'espere 7 segundos', etc.
El javascript que lance esta capa debe incorporar el envío de una cookie para que la capa se muestre sólo en la primera carga.
Esta capa lleva también un 'close' que permite cerrar la capa y dejar visible la página principal (que mientras tanto va cargándose). Este cierre de capa es opcional para el usuario: si cierra la capa, verá la página principal. Y si no cierra la capa...

TERCERO:
La página principal lleva un refresh a sí misma de 7 segundos; por tanto, a los 7 segundos la página se recarga y debido a la cookie antes enviada ya no se muestra la capa de ocultación: se muestra la página con el juego (o el contenido que lleve).

CUARTO (NO NECESARIO):
El close de la capa del paso 'Segundo' se puede sustituir por un link normal a sí mismo, de forma que la página se recarga al hacer click sobre el enlace y por el mismo motivo de la cookie antes explicado, la capa de ocultación ya no aparece.

Todo este procedimiento es mucho más sencillo hacerlo que explicarlo.

Naturalmente la capa de ocultación puede llevar todo el contenido que se desee (mucho mejor que sea de peso liviano, porque mientras se muestra se está cargando la página principal por debajo, que tiene un peso considerable -el peso de cada juego .swf- ).

Por último, al ser sólo una página, la url no cambia se haga lo que se haga (esperar los 7 segundos o clikear en el cierre/enlace).

Si te lías y pones lo que estás haciendo para resolverlo y el punto en el que te atasques, te puedo ayudar. Como ves, nada de ajax, ni lenguaje de servidor... sólo un poco de javascript y un div.

Bye
  #21 (permalink)  
Antiguo 03/09/2009, 20:01
 
Fecha de Ingreso: enero-2009
Mensajes: 119
Antigüedad: 15 años, 10 meses
Puntos: 1
Respuesta: Temporizador para pasar al otro DIV

Buenas deirdre! Muchisimas gracias por la explicación esta perfecta. Pero nose ni que codigos poner ni nada, en programación no estoy.

He creado la pagina que lleva al juego, perfectamente. Primer paso OK

Ahora como creo una capa con Javascript? El div puedo usar el mismo que tenia alli arriba en AJAX, por lo tanto ya esta creado le llamariamos:

<div id="distractor" align="center">
PAGINA QUE QUIERO QUE MUESTRE AL PRINCIPIO
<meta http-equiv="Refresh" content="7; url=Refresh">
</div>

<div id="paginareal" style="display:none">
PAGINA "REAL"
</div>

Así, que ahora mismo diria, que solo me queda el codigo javascript que me mande el cookie al div, diria no? Y despues lo de la ocultación, si dices que añadiendo un link a un refresh, serviria, diria que ya esta, me equivoco?

Haber si puedes plantearme como seria el codigo exactamente, muchisimas gracias deirde ^^

EDITO: Un apunte, mi pagina de juegos es dinamica, por lo tanto la pagina no siempre es la misma, hay alguna forma de en vez de poner el link de la pagina, hacer que haga refresh en un link?
  #22 (permalink)  
Antiguo 04/09/2009, 20:27
Avatar de deirdre  
Fecha de Ingreso: mayo-2009
Mensajes: 690
Antigüedad: 15 años, 6 meses
Puntos: 45
Respuesta: Temporizador para pasar al otro DIV

Hola GENESISBM

He preparado un prototipo, en el que he hecho algunos cambios de fucionamiento respecto a lo que apunté más arriba, pero consiguiendo exactamente los mismos resultados:

1 - Se carga una página (en este caso con un juego flash).
2 - La primera impresión en pantalla es una "página" de preload, temporizado a 7 segundos (configurable) o de acceso manual (por click). Esta página es falsa ya que es una capa de ocultación al 100% del tamaño de la ventana, por lo tanto se mantiene la url. Mientras esta falsa página está visible, la página auténtica se está cargando.
3 - A los 7 segundos se descubre la "auténtica" página (la del juego). Si se hace un reload de esta página no se vuelve a cargar el preload porque lleva una cookie de sesión (para hacer pruebas, cerrar y volver a abrir el navegador para deshacernos de la cookie).

Los cambios respecto a mi propuesta inicial es la anulación del refresh, ya que al estar todo montado en html, css y javascript (sin lenguaje de servidor) el refresh hacía looping (esto es solucionable convirtiendo todo esto en php, pero es completamente innecesario).

Lo termino de completar (no sé si me dará ya tiempo de terminarlo y subirlo: es muy de madrugada aquí) y lo subo.

Dentro de un rato, o mañana.

Bye
  #23 (permalink)  
Antiguo 04/09/2009, 20:30
 
Fecha de Ingreso: enero-2009
Mensajes: 119
Antigüedad: 15 años, 10 meses
Puntos: 1
Respuesta: Temporizador para pasar al otro DIV

Mira casualmente he enntrado y he visto que acabas de responder, y tan de madrugada que es xDD, yo soy de santa coloma de gramanet, así que muy lejos no estaremos xD, tranquilo cuando tu puedas ya lo subiras, muchisimas gracias ^^
  #24 (permalink)  
Antiguo 04/09/2009, 21:01
Avatar de deirdre  
Fecha de Ingreso: mayo-2009
Mensajes: 690
Antigüedad: 15 años, 6 meses
Puntos: 45
Respuesta: Temporizador para pasar al otro DIV

Pues nada... espero que te sirva.

Comenta algo.

preload_apertura_temporizada_y_manual

Bye
  #25 (permalink)  
Antiguo 05/09/2009, 08:48
 
Fecha de Ingreso: enero-2009
Mensajes: 119
Antigüedad: 15 años, 10 meses
Puntos: 1
Respuesta: Temporizador para pasar al otro DIV

Cita:
Iniciado por deirdre Ver Mensaje
Pues nada... espero que te sirva.

Comenta algo.

preload_apertura_temporizada_y_manual

Bye
Va perfecto, pero tengo un par de problemas, seguramente solucionables.

El primer problema es que yo al tener un foro PHPBB, tengo que meter muchos includes, por ejemplo:

Código:
<div id="principal"> <!-- contenido de la página -->
	<div id="fondo"><p class="titulo">¿ Mi juego favorito ?</p></div>
	<div id="portajuego">
    <!-- INCLUDE overall_header.html -->
		<script type="text/javascript">
			embedFlash("juegos/strikerrun.swf",600,375,"movie","","wmode","opaque");
		</script>
	</div>
	<p class="firma">Deirdre para Foros del Web</p>
</div>
Sigo usando tu ejemplo para hacer pruevas, y como ves esta la cabezera incluida ahi, ¿cual es el problema? Pues bien, cuando añado el Overall_header, la pagina no me hace el Refresh, por lo tanto se queda fijo el Preloader, este seria el primer problema.

¿como podria solucionar esto?

El segundo problema es, que si yo intento añadir toda la pagina, nose porque cuando coloco estos IF: <!-- IF S_PLAY_FULL --> , que vienen en la pagina que tengo que colocar, me da este fallo:

Parse error: parse error, unexpected $end in C:\AppServ\www\Autogol\includes\template.php(187) : eval()'d code on line 63

El fallo este, es este IF, teoricamente:

Código:
			function set_template()
	{
		global $phpbb_root_path, $user;

		if (file_exists($phpbb_root_path . 'styles/' . $user->theme['template_path'] . '/template'))
		{
			$this->root = $phpbb_root_path . 'styles/' . $user->theme['template_path'] . '/template';
			$this->cachepath = $phpbb_root_path . 'cache/tpl_' . str_replace('_', '-', $user->theme['template_path']) . '_';
			
			if ($user->theme['template_inherits_id'])
			{
				$this->inherit_root = $phpbb_root_path . 'styles/' . $user->theme['template_inherit_path'] . '/template';
			}
		}  (ESTA ES LA LINEA 63)
		else
		{
			trigger_error('Template path could not be found: styles/' . $user->theme['template_path'] . '/template', E_USER_ERROR);
		}

		$this->_rootref = &$this->_tpldata['.'][0];

		return true;
	}
Tampoco tengo ni idea de como solucionarlo.

Despues el tercer y ultimo problema, seguramente el mas sencillo de solucionar, yo tengo este codigo en el primer DIV:

Código:
<div id="preload">
	<div>
		<div class="centrado">
			<p><img alt="" src="images/loading.gif" width="220" height="19" /></p>
			<p>Por favor, espere 7 segundos</p>
			<div id="degra"><br /><a href="javascript:closeit()">Click para no esperar</a>
<p class="subir">
<table width="100%" border="0">
  <tr>
    <td>
    <script type="text/javascript"><!--
    google_ad_client = "XXXXXXXXXXXXXXXXXXXXX";
    /* XXXX, creado 31/08/09 */
    google_ad_slot = "XXXXXXXX";
    google_ad_width = XXX;
    google_ad_height = XXX;
    //-->
    </script>
    <script type="text/javascript"
    src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
    </script>
    </td>
  <tr>
    <td>
    <img src="images/icons/cargando.gif" width="16" height="16" />
    </td>
  </tr>
  <tr>
    <td>
    <span class="ldesc">
    <strong>Cargando el juego</strong><br> 
    7 segundos de espera...</span>
    </td>
  </tr>
</table>			
</div>
  </tr>
		</div>
	</div>
</div>
Primero de todo decir que estoy usando tu misma plantilla, para hacer pruevas (exactamente igual, solo he cambiado la imagen, por la publicidad, el otro div, el css y el resto de los archivos estan tal y como me lo pasaste para hacer esta prueva), como ves tengo añadida publicidad de Adsense en esa pagina, se visualiza todo perfectamente, la pagina se oculta entera, pero en cambio la publicidad sigue ahi, y se queda visible.

Te dejo una imagen para intentar aclarte todo lo que pueda:



En principio creo que ya esta, gracias por todo.

EDITO: Si quieres ver donde quiero añadir este script, metete en http://www.autogol.es/arcade.php y dale un click a cualquier juego, y cuando le das click a un juego, ahi es donde quiero que salga, te dira de registrarte, usa:

User: MTF
Pas: test

Última edición por GENESISBM; 05/09/2009 a las 09:01
  #26 (permalink)  
Antiguo 05/09/2009, 09:54
Avatar de deirdre  
Fecha de Ingreso: mayo-2009
Mensajes: 690
Antigüedad: 15 años, 6 meses
Puntos: 45
Respuesta: Temporizador para pasar al otro DIV

Hola GENESISBM

Todo esto que vas añadiendo son cosas nuevas de las que no has hablado hasta ahora. Y en todo eso no puedo ayudarte. La mejor ayuda, probablemente, la encontrarás en el foro de PHP.

Bye
  #27 (permalink)  
Antiguo 06/09/2009, 10:19
 
Fecha de Ingreso: enero-2009
Mensajes: 119
Antigüedad: 15 años, 10 meses
Puntos: 1
Respuesta: Temporizador para pasar al otro DIV

De todas formas, si me puedes decir como ocultar el codigo de google, para que se oculte bien, me seria de mucha utilidad ^^

Gracias deirdre!
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 01:29.