Heredé este fragmento de código y me parece poco óptimo y posiblemente incorrecto ya que está agregando detectores de eventos tanto en la ventana como en los objetos del documento. Sin embargo, está funcionando correctamente a excepción de blackberry 5.0. ¿Alguien puede explicar si todo esto está configurado correctamente o si hay alguna recomendación para mejorarlo y/o agilizarlo?Navegador cruzado Dom Ready
if (document.readyState === "complete")
callback();
else if (document.addEventListener)
{
document.addEventListener("DOMContentLoaded",callback,false);
window.addEventListener("load",callback,false);
}
else if(window.attachEvent)
{
document.attachEvent("onreadystatechange", callback);
window.attachEvent("onLoad",callback);
} else
setTimeout(callback,2000);
Coloque todos los JS al final del documento. Es más o menos lo mismo. – Saxoier
no, no es así si tiene scripts de carga asíncrona. – VinnyD
Si usa async. scripts de lo que no debería usar 'DOMContentLoaded' o la forma en que lo propuse debido a la ejecución de esta asincronización. La secuencia de comandos puede aparecer después de que se dispare este evento o el analizador de HTML llegue al final del archivo html. Por lo tanto, solo se pueden usar 'window.onload' y' xhr.onreadystatechange'; ambos son compatibles con el navegador cruzado. – Saxoier