Actualmente estoy desarrollando pruebas unitarias para un método Javascript que detecta la preparación del documento. Este código ya se encuentra en el nivel del marco, por lo tanto, evite mencionar que esto ya está implementado en jQuery u otra biblioteca.Cómo iniciar el evento "onload" en el documento en IE
He simulado con éxito el evento de cambio 'ReadyStateChange' con el siguiente código:
var event;
event = document.createEventObject();
event.type = 'readystatechange';
document.fireEvent('onreadystatechange',event);
que no pudieron hacer lo mismo para el caso de 'carga'. Los código siguiente produce un error argumento no válido en IE7, lanzada por la llamada a fireEvent en la última línea:
event = document.createEventObject();
event.type = 'load';
document.fireEvent('onload',event);
Alguien ha hecho esto, o dejado de hacer esto antes? También estoy interesado en cualquier sugerencia de despedir el evento de una manera diferente.
Editar: siguiendo la sugerencia de la Media Luna fresca, he cambiado mi código para:
event = document.createEventObject();
event.type = 'load';
document.body.fireEvent('onload',event);
Ya no hay error, pero el oyente de 'onLoad' no se dispara. Así es como yo configuré:
document.attachEvent('onload',listener);
El evento 'load' en realidad se activa en' document.body'. Entonces puede intentar en su lugar 'document.body.fireEvent ('onload', event)'. Sin embargo, dudo que vaya a disparar mangos conectados a 'onload'. Si lo hiciera, me sorprendería ... –
Estás 100% en lo cierto. Se puede ejecutar el evento en document.body sin error, pero los oyentes adjuntos con document.attachEvent no se activan. –
@Eric: pensé mucho. Es un hombre malo. –