Tenía la intención de usar el método Document.execCommand() junto con el atributo contenteditable para construir mi editor WYSIWYG personalizado. Pero cuando revisé la documentación de Document.execCommand() , descubrí que ahora está obsoleto. ¿Cuál es la alternativa moderna (o existente) para ello?
Parece que la alternativa será Input Events Level 2 .
Si bien es muy tentador crear un editor WYSIWYG hecho a sí mismo, personalmente me quedaré con execCommand hasta que llegue el nuevo estándar. Porque todos programaremos un editor completo por nosotros mismos, en lugar de reutilizar las soluciones de trabajo actuales.
Respuesta del año 2022: execCommand() está oficialmente obsoleto/obsoleto, pero no hay alternativa. Entonces, si debe tener soporte de texto enriquecido, debe seguir usando execCommand() y averiguar qué funciona realmente con los navegadores que desea admitir.
Tenga en cuenta que los agentes de usuario del mundo real (navegadores como Chrome, Firefox y Safari) no pueden eliminar la compatibilidad con execCommand() porque muchos servicios requieren compatibilidad. El triste estado de las cosas es que HTML5 no puede especificar ningún punto en común aquí porque los proveedores de navegadores no están de acuerdo en cómo debería funcionar execCommand() . Por lo tanto, no se puede especificar nada para HTML5, que tiene el objetivo general de especificar todas las cosas, y solo las cosas, que se necesitan para la interoperabilidad total de cualquier navegador nuevo que ingrese al mercado. Sin embargo, en mi opinión, HTML5 falla aquí porque la compatibilidad con execCommand() es realmente necesaria para que cualquier navegador nuevo ingrese al mercado, por lo que tendría sentido estandarizar al menos una de las implementaciones específicas del navegador como la oficial.
Todos los esfuerzos de estandarización actuales (Input Events 2, Clipboard API) ni siquiera intentan cubrir las funciones que execCommand() realmente hace (por ejemplo, deshacer/rehacer, cambiar el contenido dentro del rango de selección).
Esta situación ya lleva más de cinco años, así que tampoco esperes cambios rápidos.