El error sobre target
se debe a que hay un código en el controlador de eventos que intenta leer la propiedad target
del objeto Event
asociado con el evento de cambio. Usted podría tratar de pasar en una imitación de eventos para engañar a ella:
var range= document.getElementById('range');
range.onchange({target: range});
o, si se puede, cambiar el código del controlador para usar en lugar de this
event.target
.A menos que esté utilizando la delegación (capturando eventos de cambio en el objeto hijo de un elemento primario, algo que es problemático para los eventos de cambio porque IE no los "burbuja"), el objetivo del evento de cambio siempre será el elemento controlador del evento se registró, lo que hace que event.target
sea redundante.
Si el controlador de eventos usa más propiedades de Event
que solo target
, deberá falsificar más o ir a la interfaz del navegador "real" para enviar eventos. Esto también será necesario si los oyentes de eventos pueden estar en uso (addEventListener
, o attachEvent
en IE) ya que no serán visibles en la propiedad directa onchange
. Esto depende del navegador (fireEvent
para IE, dispatchEvent
para estándares) y no está disponible en navegadores más antiguos o más oscuros.
Creo que 'fireEvent()' es solo una cosa de IE. Los navegadores compatibles con estándares usan 'dispatchEvent()'. – Pointy
Obtengo un "TypeError no capturado: Objeto # no tiene ningún error de método 'fireEvent'" con este –
Mircea
@Pointy: tienes razón, actualicé - gracias –