construyendo un editor wysiwyg

Necesito construir un editor wysiwyg para un proyecto en el que estoy trabajando y necesito alguna orientación. Algunos de mis puntos clave de confusión son los siguientes:

documentos de iframe frente a divs contentables: ¿cuál debo usar y por qué? Odio los iframes, ¿existe una clara ventaja de usar iframes?

estilo de navegador cruzado: execCommand parece aplicar diferentes estilos en diferentes navegadores. ¿Hay algún truco para hacer que este navegador sea compatible? ¿No debería usar execCommand y aplicar mis propios estilos?

Agregar elementos a la cadena de deshacer: ¿cómo puedo ejecutar mi propio script, como insertar una imagen, y permitir que cntrl + z (deshacer) lo elimine? ¿Existe una variedad de elementos de deshacer / rehacer para contenteditable en los que pueda insertar elementos?

manteniendo la selección de texto: cómo puedo mantener la selección de texto mientras realizo operaciones como seleccionar el estilo de fuente, donde el foco se irá y eliminará mi selección.Alto y delgado? Cierre de Google? ¿Hay otras bibliotecas de rango / selección que valga la pena mirar?

Cualquier consejo sobre estos artículos o cualquier otra cosa relacionada con la construcción de un editor de texto enriquecido sería muy apreciado.

Respuestas a la pregunta(2)

Su respuesta a la pregunta