Aktualnie rozwijam testy jednostek dla metody JavaScript, która wykrywa gotowość dokumentu. Ten kod jest już na poziomie struktury, więc proszę unikać wzmianek o tym, że jest już zaimplementowany w jQuery lub innej bibliotece.Jak rozpalić zdarzenie "onload" na dokumencie w IE
ja z powodzeniem symulowane zdarzenia „readystatechange” zmiana z następującego kodu:
var event;
event = document.createEventObject();
event.type = 'readystatechange';
document.fireEvent('onreadystatechange',event);
nie udało mi się zrobić to samo dla zdarzenia „obciążenie”. Poniższe wyniki kod błędu w argumencie nieważny w IE7, rzucony przez wywołanie fireEvent w ostatnim wierszu:
event = document.createEventObject();
event.type = 'load';
document.fireEvent('onload',event);
Każdy użytkownik zrobił to, czy udało się to zrobić wcześniej? Interesuje mnie też każda sugestia, by wystrzelić to wydarzenie w inny sposób.
Edit: zgodnie z sugestią przez Crescent Fresh, zmieniłem mojego kodu:
event = document.createEventObject();
event.type = 'load';
document.body.fireEvent('onload',event);
nie ma więcej błędów, ale słuchacz dla 'onload' nie uruchamia. Oto jak ja skonfigurowany go:
document.attachEvent('onload',listener);
Zdarzenie 'load' faktycznie uruchamia się na' document.body'. Możesz więc spróbować zamiast tego 'document.body.fireEvent ('onload', event)'. Wątpię jednak, by faktycznie uruchamiał uchwyty dołączone do 'onload'. Gdyby tak było, byłbym zszokowany ... –
Masz 100% racji. Wypalanie zdarzenia na document.body może odbywać się bezbłędnie, ale detektory powiązane z document.attachEvent nie są wyzwalane. –
@Eric: myślałem tak bardzo. To człowiek, który nie ma racji. –