Problema de componentes de texto
No estoy seguro si encontré este código en un Issue aquí o en Stack Overflow, pero este código aquí reemplaza los Divs por una <br/> cuando pulsas la tecla enter. He puesto este código en el mismo archivo que mi grapes-config ! uvasEjemplo '''js var iframeBody = editor. Lienzo.getBody(); $(iframeBody).on("keydown", "[...
Lee la respuesta completa abajo ↓Pregunta
Hola. Ojalá tuviera un componente de texto que no cree nuevos componentes cada vez que pulso la tecla "Enter" para crear nuevos párrafos (esto es una mala usabilidad). Además, el componente textual real del núcleo de uvas presenta un problema (descrito en la pantalla más abajo). ¡Gracias de antemano por vuestra atención! ! gif-pantalla-uvas
Respuestas (3)
No estoy seguro si encontré este código en un Issue aquí o en Stack Overflow, pero este código aquí reemplaza los Divs por una <br/> cuando pulsas la tecla enter. He puesto este código en el mismo archivo que mi grapes-config
'''js var iframeBody = editor. Lienzo.getBody(); $(iframeBody).on("keydown", "[contenteditable]", e => { atrapa la tecla return que se está pulsando si (e.Código clave === 13) { e.preventDefault(); insertar 2 etiquetas BR (si solo se inserta una etiqueta BR, el cursor no pasará a la siguiente línea) e.target.ownerDocument.execCommand("insertHTML", false, "<br><br>"); Prevenir el comportamiento por defecto de la tecla return presionada return false; } });
Yo mismo investigué esto hace unos días... aparentemente hay una opción 'insertBrOnReturn' para 'execCommand', pero el soporte para navegadores es terrible. Una solución como esta (https://stackoverflow.com/questions/18552336/prevent-contenteditable-adding-div-on-enter-chrome) probablemente sea mejor.
@artf ¿Cómo te gustaría que cambiara esto? ¿Debería pulsar enter <br>insertar etiquetas '' como se muestra en la respuesta superior de la discusión sobre ESO? ¿Querrías exponer esto como una opción de configuración?
He encontrado una solución a mis necesidades usando CKEditor y anulando el componente nativo de "texto" para crear el mío propio. Mi componente de texto ahora es una div con una clase css que identifica el componente:
'''javascript comps.addType('text', { model: textModel.extend({ defaults: Object.assign({}, textModel.prototype.defaults, { etiquetaNombre: 'div', nombre: 'Texto', arrastrable: '', Droppable: Falso }), }, { isComponent: function(el) { if(el.tagName == 'DIV' && el.classList.contains('txt')){ return {type: 'text'}; } }, }) /...*/
Ahora, escribir ENTER no crea un nuevo componente. Sin embargo, esta solución no resuelve este problema, para quienes no quieren usar editores de texto de terceros.
Preguntas y respuestas relacionadas
Continúa investigando con debates sobre temas similares.
Issue #2656
[BUG] Posición incorrecta de la barra de herramientas al duplicar un componente hijo
Hola, Puedes consultar este ejemplo: https://codepen.io/abozhinov/pen/XWbqjEJ Pasos para reproducir el problema:Si existen componentes, eli...
Issue #2771
[BUG] componente con textable:1 no funciona desde la versión 0.16.12
Hola, Acabo de actualizar a la versión de Last 0.16.12 y tengo un error al intentar mover un componente que tiene la propiedad 'textable:1'...
Issue #2824
¿Los objetos arrastrados no se posicionan con la resistencia inicial?
Así que cuando arrastro un componente o objeto desde la barra hasta el centro, no va a donde le dije... ¿Siempre va aproximadamente un 20%...
Issue #896
[BUG] Las reglas de consulta de medios son anuladas por las reglas de clase en el lienzo
Hola @artf, He notado un problema mientras probaba una de mis plantillas usando diferentes configuraciones de dispositivos que supuestament...
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.
Tutorial
Ship to Production Faster: What’s New in GrapesJS Shadcn
Supercharge your page builder! GrapesJS Shadcn adds live drag previews, rich text / commands, dynamic data, and canvas presets to ship to prod faster.
Tutorial
How to Build a Production GrapesJS Editor: The Complete Walkthrough of Brief, Preset, Plugins, and Services
A complete walkthrough of building a production GrapesJS editor: how to choose a preset, pick plugins, and scope setup services without burning a sprint.
Tutorial
GrapesJS Inline RTE Plugins Update: CKEditor 5 v0.1.4 and Froala Inline Text Editor
CKEditor 5 Inline for GrapesJS v0.1.4 fixes Studio SDK toolbar clipping, iframe injection and link balloon bugs. Compare with Froala Inline — both $69.
Explorar categorías de plugins
Ve directamente a las páginas de categorías de plugins en el marketplace.