Ai problemi legati all'utilizzo cross-browser di window.onload
abbiamo dedicato in passato diversi post. Su HTML.it è anche presente la traduzione di un lungo articolo di sintesi sull'argomento scritto da Peter Michaux.
Proprio quell'articolo si esprime ad un certo punto sui problemi derivanti dalla mancata implementazione su Internet Explorer e Safari dell'evento DOMContentLoaded
(supportato invece da Firefox e Opera 9.0).
DOMContentLoaded
, come sanno bene i più, viene eseguito prima che sia avvenuto il caricamento completo di quegli elementi (immagini molto pesanti, filmati Flash, video o applet) che in genere rallentano il caricamento della pagina, cosa che lo rende perfetto per quelle situazioni in cui tali rallentamenti possano impedire l'esecuzione di codice Javascript (leggi: funzionalità importanti della pagina).
Ovviamente non sono mancati i metodi per emulare su IE e Safari gli effetti di questo evento. Negli ultimi giorni è spuntato fuori un metodo alternativo per IE creato da Hedger Wang (che a sua volta ha preso le mosse da una soluzione elaborata da Diego Perini).
Stuart Langridge ha quindi ben pensato di unire in un unico snippet di codice quest'ultima soluzione per IE insieme a quelle per Opera/Firefox e Safari. La trovate su questa pagina (non manca la demo).
Sul nuovo metodo segnalo anche la presa di posizione (o dovrei dire "le perplessità "?) di Andrea Giammarchi.