2013-03-22 9 views
6

Mam małe narzędzie javascript, które może zostać wczytane, wczytane lub załadowane na żądanie. Po zainicjowaniu dodaje trochę rzeczy do DOM. Ma niski priorytet i jeśli jest wstępnie załadowany, może poczekać, aż zdarzenie onload zostanie uruchomione, ale jeśli jest leniwy, może zostać uruchomiony natychmiast.Zdarzenie window.onload jest już uruchomione.

Obecnie Sprawdza, czy istnieje identyfikator elementu stopki, aby określić, czy powinien on dodać detektor zdarzeń do zdarzenia onload okna, czy po prostu go uruchomić. na przykład

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

Chociaż obecnie działa, jest to oczywiście bardzo złe rozwiązanie. Wszelkie niezwiązane z jQuery sugestie dotyczące ulepszenia tego z wdzięcznością otrzymane!

Odpowiedz

11

Należy użyć document.readyState właściwość:

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

Dzięki, z jakiegoś powodu jednak, że nie była obsługiwana w starszych wersjach IE, ale właśnie sprawdziłem i jest w porządku w IE6, który jest tak daleko jak trzeba iść. –

Powiązane problemy