Activa el RTE por defecto con una función personalizada
Hola @edwardjiawei, no funciona porque el 'comando: 'tlb'' en 'RichTextEditor.add' no es el comando de GrapesJS sino el de la API de 'execCommand' (por ejemplo, 'fontSize', 'insertHTML', etc.) así que actualmente no puedes añadir comportamientos personalizados a RTE. Lo cierro porque no planeo soportar más el RTE actu...
Lee la respuesta completa abajo ↓Pregunta
Hacer correctamente mi llamada a la API, quiero añadir un RTE con función personalizada para añadir un enlace/abrir ventanas nuevas/abrir modal:
Command funciona para fontSize pero el desplegable no está alineado y muestra el valor de la opción El comando no funciona para insertHTML. Función que no funciona (Intencionada/No es una característica)
! uvas
editor. RichTextEditor.add('fontSize', {
comando: 'fontSize',
Opciones: [
{nombre: 'Huge', valor: '7'},
{nombre: 'Normal', valor: '5'},
{valor: '1'}
]
});
Creo que ni siquiera el comando funciona para añadir HTML específico
editor. RichTextEditor.add('insertHTML', {
comando: 'insertHTML',
Clase: 'FA FA-Link',
título: 'prueba',
args: '<a class="link" href="">${content}</a>',
});
editor. Commands.add('tlb', {
run: function(editor, sender){
editor.getSelected().view.enableEditing();
Sethref para el enlace, etc.
alerta ('¡Hola mundo!');
},
stop: function(editor, sender){
},
});
editor. RichTextEditor.add('tlb', {
Orden: 'TLB',
Clase: 'FA FA-Link',
Título: 'Prueba'
});
Respuestas (3)
Hola @edwardjiawei, no funciona porque el 'comando: 'tlb'' en 'RichTextEditor.add' no es el comando de GrapesJS sino el de la API de 'execCommand' (por ejemplo, 'fontSize', 'insertHTML', etc.) así que actualmente no puedes añadir comportamientos personalizados a RTE. Lo cierro porque no planeo soportar más el RTE actual, en su lugar, lo reemplazaré por otro que también soporte acciones personalizadas (añadidas a la hoja de ruta)
Espero que puedan soportar algún RTE con licencias más permisivas como MIT o BSD. Supongo que algunas empresas incluso podrían no elegir BSD. La integración con CKEditor es bastante sencilla, pero la licencia puede no ser buena para algunas empresas.
Gracias de todas formas.
CKEditor es demasiado grande para ser la solución integrada (pero puedes encontrarlo como plugin si quieres usarlo) Probablemente me quede con https://github.com/jaredreich/pell todo esto es su código https://github.com/jaredreich/pell/blob/master/src/pell.js y es todo lo que necesito
Preguntas y respuestas relacionadas
Continúa investigando con debates sobre temas similares.
Issue #1780
Cómo cambiar el desplegable extra para el rasgo de cambio de enlace
Hola @artf, Quiero dar una funcionalidad más al usuario, como que el usuario pueda cambiar cualquier enlace con el desplegable de enlaces p...
Issue #1294
¿Cómo añadir una categoría para el gestor de bloques por defecto?
@artf quiero poner todos los bloques por defecto en una categoría llamada "Basic". Pero no encuentro ningún documento al respecto. ! imagen...
Issue #1622
Emisión de fuente seleccionada por defecto para fuente personalizada en la tipografía.
Hay un problema de fuente: cuando hago clic en cualquier elemento no muestra la fuente actual del elemento, añadí código personalizado para...
Issue #1927
[PREGUNTAS] Error Sender.set('active') Tamaño máximo de pila de llamadas superado
Tengo un botón con el comando 'mostrar-izquierda', que quiero hacer que cuando se pulse el botón una segunda vez (o más) siga 'activo', per...
Plugins de pago que cumplen con este problema
Seleccionado por temas clave y relevancia de etiquetas para ayudarte a enviar más rápido.
Cargando recomendaciones de plugins de pago...
Consulta los plugins de código abierto de GrapesJS en GitHub O haz una búsqueda rápida en nuestro catálogo gratuito.
Explora plugins gratuitos →Los plugins premium incluyen soporte, actualizaciones regulares y funciones listas para producción — ahorrando días de trabajo de integración.
Explora plugins premium →Tutoriales relacionados
Guías detalladas sobre el mismo tema.
Explorar categorías de plugins
Ve directamente a las páginas de categorías de plugins en el marketplace.