Respuesta

22

En las versiones de IE> = 9 y todos los demás navegadores se debe utilizar el método de dispatchEvent:

var event = document.createEvent("HTMLEvents"); 
event.initEvent("change",true,false); 

document.getElementById("id").dispatchEvent(event); 

Salida http://jsfiddle.net/QKsvv/

+1

Comprobando si '(id.dispatchEvent)' 'continuación else if (id .fireEvent) 'Ahora puedo usar el código non-ie8 para trabajar para ie9. Parece que IE finalmente se está poniendo de moda? – styler1972

+0

Eso es correcto. Puede extraer el código de activación en un método separado que manejará todos los navegadores. – Strelok

+4

Como información adicional, esto solo funciona para los elementos que están en el DOM en vivo. Si dinámicamente haces objetos y quieres simular cosas como clics en ellos usando dispatchEvent, * tienes * para agregarlos al DOM primero. Si no lo haces, aún puedes enviar eventos, pero te arrancarás el pelo preguntándote por qué la función se ejecuta correctamente sin activar tu controlador de eventos. –

0

encontré un thread discutiendo su problema. abra this y trate de ejecutar en ie9.

espero que ayude. ¡Gracias!

Cuestiones relacionadas