Ver Mensaje Individual
  #7 (permalink)  
Antiguo 25/05/2008, 21:28
Avatar de Panino5001
Panino5001
Me alejo de Omelas
 
Fecha de Ingreso: mayo-2004
Ubicación: -34.637167,-58.462984
Mensajes: 5.148
Antigüedad: 20 años, 7 meses
Puntos: 834
Respuesta: Comprobar si se cargaron todos los elementos del sitio

Por los que están dentro del body no tendrás que preocuparte: el body onload o el window.onload no llegará hasta que no estén cargados, de manera que cuando esos eventos se produzcan esos js ya estarán cargados. El problema se reduce a los scripts que están fuera del body. Para ello podés determinar el fin de la carga con algo como esto:
Código PHP:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<
html xmlns="http://www.w3.org/1999/xhtml">
<
head>
<
meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<
title>test</title>
<
script>
var 
scrs=['algo.js','algo3.js','algo2.js'];
var 
cargados=0;
function 
adjs(url){
    
    
sc=document.createElement('script');
    if(
sc.addEventListener)
        
sc.addEventListener('load',function(){cargados++},false);
    else
        
sc.onreadystatechange=function(){
            if(
sc.readyState=='complete' || sc.readyState=='loaded')cargados++;
    }
    
   
    
sc.src=url;
    
document.getElementsByTagName('body')[0].appendChild(sc);

function 
loadScript(){
for(var 
i=0;i<scrs.length;i++){
    
adjs(scrs[i]);
}
}
window.onload=function(){
    
loadScript();
    var 
int=setInterval(function(){if(scrs.length==cargados){alert('todos cargados');clearInterval(int)}},200)
}
</script>
</head>

<body>
</body>
</html> 
Como ves, en lugar de cargarlos como se haría habitualmente: <script src="algo.js"></script>, deberás sumar los scripts a cargar en el array scrs. De esa manera podrás controlar si cargaron o no.
En este caso es más o menos simple, ya que los diferentes navegadores nos dan herramientas para detectar la carga usando únicamente javascript (si fueran estilos css sería más complejo, porque tendríamos que usar javascript para algunos navegadores y XBL para otros)

Última edición por Panino5001; 26/05/2008 a las 05:51