Saltar al contenido

¿Hay un reemplazo para document.execCommand? (¿o es seguro usar document.execCommand?)

Después de de una prolongada recopilación de información hemos podido solucionar este enigma que tienen algunos los lectores. Te dejamos la solución y esperamos serte de mucha ayuda.

Solución:

Tanto el cambio al marcado MDN document.execCommand() como obsoleto y un cambio relacionado en https://github.com/mdn/browser-compat-data/commit/2d3890a se realizó en parte debido a https://w3c.github.io/editing/ActiveDocuments/execCommand.html teniendo una gran advertencia roja con las siguientes declaraciones:

Esta especificación está incompleta y no se espera que avance más allá del estado de borrador. Los autores no deben usar la mayoría de estas funciones directamente, sino que deben usar bibliotecas de edición de JavaScript. Las funciones descritas en este documento no se implementan de manera uniforme o completa por parte de los agentes de usuario, y no se espera que esto cambie en el futuro previsible.

En cuanto a cualquier método de reemplazo en JavaScript estándar, el mismo cuadro de advertencia dice que es:

predijo que en el futuro ambas especificaciones serán reemplazadas por contenido editable y eventos de entrada

…pero lamentablemente, todavía no hemos llegado. Entonces, el desafortunado estado actual de las cosas es que, aunque todavía no tenemos un reemplazo, sabemos document.execCommand() tal como está ahora no funciona de manera interoperable entre navegadores, y los proyectos de navegador no lo solucionarán. Es por eso que la advertencia de MDN dice:

se desaconseja su uso… Intenta evitar su uso.

Entonces, como dice un comentario anterior, es similar al caso de arrastrar y soltar: se sabe que se rompe de varias maneras, y ha sido así durante mucho tiempo porque básicamente no es práctico arreglarlo.

Y es por eso que el cuadro de advertencia rojo en la especificación también dice que los desarrolladores y autores:

no debe usar la mayoría de estas funciones directamente, sino usar bibliotecas de edición de JavaScript

Las bibliotecas de edición de JavaScript disponibles en las herramientas de edición de texto enriquecido en línea como CKEditor y TinyMCE “cubren” todas las fallas subyacentes en document.execCommand() para ti. Si intentara escribir su propio manejo robusto para document.execCommand() en JavaScript estándar desde cero, básicamente, después de mucho trabajo y tiempo, terminaría repitiendo el trabajo que se realizó para crear las bibliotecas de JavaScript subyacentes a esas herramientas.

Entonces, la conclusión es: para ahorrarse mucho tiempo y trabajo, use una de las bibliotecas disponibles.

Parece que el nuevo estándar será Input Events Level 2.

A mi modo de ver, trata de solucionar los puntos débiles de execCommand.

Te invitamos a añadir valor a nuestro contenido informacional tributando tu veteranía en las explicaciones.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *