Foros del Web » Programando para Internet » Javascript »

Como detecto si un pagina termino de abrirse

Estas en el tema de Como detecto si un pagina termino de abrirse en el foro de Javascript en Foros del Web. saludos a todos..... Gracias por la ayuda anterior, aun no logro lo que necesito sigue ignorando una seccion de frame, lo voy a posponer hasta ...
  #1 (permalink)  
Antiguo 06/02/2007, 14:15
 
Fecha de Ingreso: abril-2004
Ubicación: Morelos, México
Mensajes: 124
Antigüedad: 20 años
Puntos: 0
Como detecto si un pagina termino de abrirse

saludos a todos.....

Gracias por la ayuda anterior, aun no logro lo que necesito sigue ignorando una seccion de frame, lo voy a posponer hasta q resuelva este otro problema.

Sucede que en una pagina llamada inicio.html tengo el siguiente codigo html, en donde se cargan diferentes frames. Cada uno de ellos se relacion con otro de acuerdo con las variables inicializadas en cada script. Cada script manda a llamar a otros.

principal.php toma valores extraidos de la pagina productos.php

el problema surge cuando por primera vez se cargan las paginas, estado.php no reconoce las variables ni los valores de produtos.php.

Estoy seguro de que principal.php se carga antes que productos.php y por esa razon no se activan los valores de inicio en estado.php. utilizo el setTimeout("OnGetXML()", 300);
para ejecutarla cada 300 milisegundos.

Mi pregunta es, existe la forma de detectar si una pagina (en este caso frame) se ha cargado completamente, porque quiero detectar primero que productos.php este con valores en las variables y despues q se cargue principal.php



Código PHP:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN" "http://www.w3.org/TR/html4/frameset.dtd">
<
html>
<
head>
<
title>pruebas </title>
<
meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<
META http-equiv="Page-Enter" CONTENT="RevealTrans(Duration=2,Transition=23)">
</script>
</head>

<frameset rows="126,*" cols="*" framespacing="0" frameborder="NO" border="0">
  <frame src="comun_s_index.php" name="topFrame" scrolling="NO" noresize >
  <frameset rows="77,*" cols="*" frameborder="NO" border="0" framespacing="0">
    <frameset rows="*" cols="*,30" framespacing="0" frameborder="NO" border="0">
      <frame src="bot.php" name="topFrame1" scrolling="NO" noresize>
      <frame src="resp_co.htm" name="rightFrame1" scrolling="NO" noresize>
    </frameset>
    <frameset rows="*" cols="*,209" framespacing="0" frameborder="NO" border="0">
      <frame src="principal.php" name="mainFrame">
      <frame src="productos.php?producto=PRODUCTO1" name="rightFrame" scrolling="YES" noresize>
    </frameset>
  </frameset>
</frameset>
<noframes><body>

</body></noframes>
</html> 

Este es el codigo de un script llamado principal.php
Código PHP:
function state_Change()
{
    // if xmlhttp shows "loaded"
if (xmlhttp.readyState==4)
  {
  // if "OK"
  if (xmlhttp.status==200)
  {
    fileContent = xmlhttp.responseText;
    OnPanal();
  }
  else
  {
  alert("Problem retrieving XML data:" + xmlhttp.statusText);
  }
  }
}

function InitComm()
{
    setTimeout("OnGetXML()", 3000);
}



function loadXMLDoc(url)
{

    // code for Mozilla, etc.
if (window.XMLHttpRequest)
  {
      xmlhttp=new XMLHttpRequest();

/*      if (xmlhttp.readyState == 0){
      //alert("no se a inicializado");
     //xmlhttp.open("POST",url,false);

      try {

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

      } catch (e) {

        alert("No se ha inicializado, ERROR: "+e);
        //window.open("http://localhost/datos/inicio.html","","") 
        //document.location.href="http://localhost/datos/inicio.html
//document.location.reload;
        //window.open(url,"","") 
         //InitComm('<?= $producto;?>', '<?= $Hoja;?>', '<?= $SERVER_ADDR;?>' );
        
      }
      
      }
      */
    xmlhttp.onreadystatechange=state_Change;
    xmlhttp.open("GET",url,true);
    xmlhttp.send(null);
      
  }
// code for IE
else if (window.ActiveXObject)
  {
  xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
    if (xmlhttp)
    {
    xmlhttp.onreadystatechange=state_Change;
    xmlhttp.open("GET",url,true);
    xmlhttp.send();
    }
  }
  
}


function OnGetXML()
{
    loadXMLDoc(<?php echo "\"http://".$SERVER_ADDR."/datos/estado.php?producto=".$producto."&Hoja=".$Hoja."\""?>);

}

<body onLoad="InitComm()">
NOTA: cuando activo un enlace donde se recarga la informacion nuevamente de inicio.html, trabaja muy bien este codigo, solo es el problema con los valores de inicio que por primera vez no hace las actualizaciones de los valores.
  #2 (permalink)  
Antiguo 06/02/2007, 18:46
 
Fecha de Ingreso: abril-2004
Ubicación: Morelos, México
Mensajes: 124
Antigüedad: 20 años
Puntos: 0
Re: Como detecto si un pagina termino de abrirse

Encontre el siguiente error al momento en que se manda a llamar a la funcion por primera vez........
xmlhttp.open("GET",url,true);


en el codigo donde ejecuto el abrir el script estado.php, me manda el siguiente error:
"Permission denied to call method xmlrequest.open"

A que se debe, si esta misma instruccion cuando se recarga el inicio.html carga bien los valores......

Código PHP:
function loadXMLDoc(url)
{

    // code for Mozilla, etc.
if (window.XMLHttpRequest)
  {
      xmlhttp=new XMLHttpRequest();
    
/*      if (xmlhttp.readyState == 0){
      //alert("no se a inicializado");
     //xmlhttp.open("POST",url,false);

      try {

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

      } catch (e) {

        alert("No se ha inicializado, ERROR: "+e);
        //window.open("http://localhost/Consola/index.html","","") 
        //document.location.href="http://localhost/Consola/index.html";
        //document.location.reload;
        //window.open(url,"","") 
         //InitComm('<?= $producto;?>', '<?= $Hoja;?>', '<?= $SERVER_ADDR;?>' );
        
      }
      
      }
      */
      xmlhttp.onreadystatechange=state_Change;
      /*if (xmlhttp.readyState == 0){
        
        //window.location.href = url;
        alert (url);
        //window.location.reload(true);
        //InitComm();
}*/
/*        url = "http://localhost/Consola/estado.php";
    xmlhttp.open("POST",url,false);
    xmlhttp.send("producto=PRODUCTO1&Hoja=1");
    //xmlhttp.send(null);
      //alert("xmlhttp.status con post:"+xmlhttp.status);

    }
    else{*/
      //alert("xmlhttp.status-antes:"+xmlhttp.status);
    //alert (xmlhttp.readyState);
    var tempo = false;
    try{
        //url = "http://localhost/Consola/estado.php";
        xmlhttp.open("GET",url,true);
        xmlhttp.send(null);
    }catch(e){
        alert (url+e);
        /*window.location.reload(true);
        windows.location.href=url;*/
         /*xmlhttp=new XMLHttpRequest();
        url = "http://localhost/Consola/estado.php";
        xmlhttp.open("GET",url,true);
        xmlhttp.send("producto=PRODUCTO1&Hoja=1");*/
    InitComm();        

    }
    //alert ("tempo"+tempo);
    if (xmlhttp.readyState==0){
        
        //window.location.href = url;
        //alert (url);
        //window.location.reload(true);
        //InitComm();
}

    //xmlhttp.send(null);
    //}
      
  }
// code for IE
else if (window.ActiveXObject)
  {
  xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
    if (xmlhttp)
    {
    xmlhttp.onreadystatechange=state_Change;
    xmlhttp.open("GET",url,true);
    xmlhttp.send();
    }
  }
  
}
Nose como decirle para que cargue la informacion y su ejecucion del script estado.php y despues que lea su xml correctamente.


NOTA: en la segunda vez lo hace bien......
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 22:09.