2011-03-25 7 views
10

Tengo un script que se inicia cuando se carga la página y que había estado utilizando el código de abajo para iniciarlo:attachEvent/addEventListener al proceso de carga de ventanillas/carga - forma preferida

if (window.addEventListener) { 
    window.addEventListener('load', otherRelatedParts, false); 
} 
else if (window.attachEvent) { 
    window.attachEvent('onload', otherRelatedParts); 
} 

pero hoy he tratado con un auto invocando una función como esta:

(function() { 
otherRelatedParts(); 
}()) 

Parece que funciona en todos los navegadores y tiene menos código. ¿Es esta la forma preferida de agregar eventos a la carga de la ventana?

+7

sin necesidad de la función de invocación automática, solo 'otherRelatedParts()' hará. – meouw

Respuesta

1

Creo que la cláusula anterior if está escrita para cubrir algunos problemas del navegador cruzado. Debes factorizar estas cosas fuera de tu código.

Como otras personas lo han hecho antes, también podría utilizar alguna biblioteca como jQuery. Debería buscar allí el .ready().

+16

Existen varias razones por las que los desarrolladores pueden necesitar core javascript, y algunas veces una biblioteca como jQuery es exagerada. – squidbe

11

Su función de invocación automática se ejecutará antes que window.onload. Se ejecutará en el momento en que el navegador lo lea. En la mayoría de los casos, en realidad no hace ninguna diferencia para que pueda usarlo de esta manera. Window.load normalmente se genera cuando se han descargado todos los objetos (imágenes, archivos JavaScript, etc.). $ (document) .ready() dispara antes que window.onload - cuando el DOM está listo para la manipulación.

Cuestiones relacionadas