2013-03-22 18 views
6

Ho un piccolo javascript util che può essere precaricato, caricato o caricato su richiesta. Quando viene avviato aggiunge alcune cose al DOM. Ha una bassa priorità e se è precaricato può aspettare che l'evento onload si accenda prima di essere eseguito, ma se è pigro, può andare avanti ed essere eseguito immediatamente.L'evento window.onload è già stato attivato

Attualmente sta controllando se l'ID dell'elemento footer esiste per determinare se è necessario aggiungere un listener di eventi all'evento onload della finestra o semplicemente eseguire. per esempio.

if (document.getElementById("footer")){ 
    Init() 
} else { 
    if (window.addEventListener){...} 
    else if (window.attachEvent){...} 
} 

Anche se attualmente funziona, questa è ovviamente una soluzione piuttosto scadente. Eventuali suggerimenti non correlati a jQuery su come migliorare questa gratitudine ricevuta!

risposta

11

Si dovrebbe usare document.readyState proprietà:

if (document.readyState === 'complete') { 
    //do stuff 
} 
+0

Grazie, per qualche motivo ho pensato che non era supportata nelle versioni precedenti di IE, ma ho appena controllato e va bene in IE6 che è nel lontano ho bisogno andare. –

Problemi correlati