Ver Mensaje Individual
  #1 (permalink)  
Antiguo 06/02/2007, 14:15
javierrm
 
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.