Estoy creando un editor WYSIWYG y estoy tratando de enviar un par de eventos de composición (inicio de composición y actualización de composición). El editor utiliza un modelo de documento privado y cada evento clave se procesa y registra en dicho modelo de documento. Después de la grabación clave, si es necesario (según las selecciones de elementos cruzados y los elementos de inicio/final seleccionados), es posible que deba volver a dibujar un elemento o una parte de un elemento.
La idea es capturar los eventos de composición del usuario, procesar los cambios en el modelo y los elementos del documento y luego enviar una copia de los eventos de composición del usuario. Aquí está el código que he escrito (actualmente los eventos están codificados; solo estoy probando una prueba de concepto):
var compStart = new CompositionEvent('compositionstart', { bubbles:true, cancelBubble:false, cancelable:true, composed:true, data:"", returnValue:true, view:window, }); var compUpdate = new CompositionEvent('compositionupdate', { bubbles:true, cancelBubble:false, cancelable:true, composed:true, data:"´", returnValue:true, view:window, }); document.querySelector('client-control-wysiwyg').dispatchEvent(compStart); document.querySelector('client-control-wysiwyg').dispatchEvent(compUpdate);Los detectores de eventos se activan cuando se envían estos eventos, pero el carácter "´" nunca aparece en el elemento.
Estos dos eventos son idénticos a los que se crean cuando escribo la combinación de teclado Opción + E en mi Mac, con la excepción de isTrusted, que se espera que se activen manualmente.
¿Es posible enviar CompositionEvents?