Estoy creando un evento, así que use el constructor de eventos DOM:
new Event('change');
Esto funciona bien en los navegadores modernos, sin embargo, en Internet Explorer 9, 10 y 11, falla con:
Object doesn't support this action
¿Cómo puedo arreglar Internet Explorer (idealmente a través de un polyfill)? Si no puedo, ¿hay alguna solución que pueda usar?

Respuestas:
Hay un polyfill de IE para el constructor CustomEvent en MDN . Agregar CustomEvent a IE y usarlo en su lugar funciona.
fuente
window.Event= CustomEventen la última línea.StorageEventytypeof(StorageEvent)no funciona. Esto funciona:try { new StorageEvent(); } catch (e) { /* polyfill */ }.Creo que la mejor solución para resolver su problema y tratar con la creación de eventos entre navegadores es:
fuente
return eventpara poder pasárselodispatchEvent().initEventes antiguo y está en desuso , necesita al menos usar la forma moderna y, como alternativa, usar la forma en desuso.CustomEventpermite pasar datos personalizados a través de ladetailopción, yEventno lo hace. ¿Me equivoco?Este paquete hace la magia:
https://www.npmjs.com/package/custom-event-polyfill
Incluya el paquete y envíe el evento de la siguiente manera:
fuente
Si solo está tratando de enviar un evento simple como el evento de alternancia HTML, esto funciona en Internet Explorer 11 y en los otros navegadores:
fuente
es6let(y no usasvar) con un código que se supone que se ejecuta en un IE antiguo ... podría confundir a los principiantes que copiarán yIE 9y más arriba, y tal vez una persona que busca una respuesta que encuentra este hilo, está desarrollando una aplicación para el sistema bancario heredado o algún otro sistema para clientes comerciales que no tienen control sobre sus computadoras y están obligado a trabajar con viejos IE. esto no tiene nada que ver con el soporte técnico de Microsoft ..Hay un servicio de polyfill que puede parchear este y otros para usted
https://polyfill.io/v3/url-builder/
fuente
el
custom-eventpaquete npm funcionó muy bien para míhttps://www.npmjs.com/package/custom-event
fuente
Personalmente uso una función de contenedor para manejar eventos creados manualmente. El siguiente código agregará un método estático en todas las
Eventinterfaces (todas las variables globales que terminan enEventuna interfaz de Evento) y le permitirá llamar a funciones comoelement.dispatchEvent(MouseEvent.create('click'));en IE9 +.EDITAR: La función para buscar todas las
Eventinterfaces también se puede reemplazar por una matriz para alterar solo las interfaces de eventos que necesita (['Event', 'MouseEvent', 'KeyboardEvent', 'UIEvent' /*, etc... */]).fuente