No se pueden añadir espacios al componente de botón extendido basándose en el componente de texto.
Parece que el espacio activa el evento de 'clic' en Chrome. La solución parece ser añadir el preventDefault en 'keypress' https://stackoverflow.com/questions/22104860/chrome-firing-onclick-when-space-typed-in-contenteditable-button PD: Evita ampliar la vista de esa manera. Por defecto, cuando usas 'extender' de algún...
Lee la respuesta completa abajo ↓Pregunta
Hola a todos,
Antes que nada, me gustaría expresar mi agradecimiento por esta increíble herramienta. Tengo un componente de botón extendido basado en el componente de texto para poder editar el contenido del botón manualmente sin usar rasgos.
El código para el componente de botón extendido es este:
VAR Comps = Editor. DomComponents;
var defaultType4 = comps.getType('text');
editor. DomComponents.addType('button', {
modelo:{
Predeterminados: {
etiquetaNombre: 'botón',
clases: ['.pointer'], //Añadir puntero de clic al pasar el cursor,
},
},
extiende: 'texto',
isComponent: function (el) {
if (el.tagName === 'BOTÓN')
return {tipo: 'botón'};
},
view: defaultType4.view.extend({
eventos: {
dblclick: 'onActive',
entrada: 'onInput',
arrastrar: 'manejarArrancar',
Haz clic: función() {
/*Función de clic */
}
},
})
})
A estas alturas soy capaz de editar manualmente el contenido de los componentes de los botones. Ahora, el problema con el que lidio es que no puedo añadir caracteres de espacio dentro del contenido de los botones. ¿Alguien puede ayudarme?Respuestas (2)
Parece que el espacio activa el evento de 'clic' en Chrome. La solución parece ser añadir el preventDefault en 'keypress' https://stackoverflow.com/questions/22104860/chrome-firing-onclick-when-space-typed-in-contenteditable-button
PD: Evita ampliar la vista de esa manera. Por defecto, cuando usas 'extender' de algún tipo, también estás extendiendo su vista (si necesitas extender la vista de otro componente puedes usar 'extendView: 'another-component-type').
Gracias por informar de esto, @christosapos.
Buena pregunta sobre No se pueden añadir espacios a un componente de botón extendido basándose en un componente de texto.. El enfoque recomendado con Componentes es utilizar la API orientada a eventos.
Empieza aquí:
- Consulta la documentación de GrapesJS de tu módulo específico
- Busca el método del oyente de eventos 'on()'
- La mayoría de las operaciones se pueden realizar escuchando eventos del editor y de los componentes
Patrones comunes: '''javascript Prestad atención a los cambios editor.on('Change', () => console.log('Something Changed'));
Ciclo de vida de los componentes editor.on('component:mount', (c) => console.log('component ready', c)); editor.on('component:update', (c) => console.log('component updated', c));
**Si sigues atascado:**
- Compartir una reproducción mínima de CodeSandbox
- Incluye lo que ya has probado
- Menciona tu versión GrapesJS
- ¡La comunidad está aquí para ayudar!
Preguntas y respuestas relacionadas
Continúa investigando con debates sobre temas similares.
Issue #3287
Diseño de envoltorio
Antes que nada, enhorabuena @artf por este increíble proyecto 💯 Actualmente estoy trabajando en un proyecto y quería preguntar si puedo ed...
Issue #3399
Convertir JSON a HTML lado servidor
Así que, antes que nada, gracias @artf por este increíble proyecto. Tengo una pregunta: ¿Es posible convertir fácilmente el component-JSON...
Issue #3512
Los elementos hijos no se pueden arrastrar, se pueden soltar y se pueden resaltar. también el CSS de todos los elementos hijos que no se insertan en la sección de estilo mientras se desarrolla un componente banner en un plugin
Hola @artf, Estoy intentando desarrollar un plugin sencillo para banners que incluya un encabezado, un subtítulo y un enlace. y cada elemen...
Issue #3541
[PREGUNTA] ¿Cuál es la forma idiomática de añadir y eliminar clases de los componentes?
Hola 👋 ¡Me encanta el editor! Estamos usando rasgos para modificar las clases que tiene un componente, pero eso resulta un poco forzado po...
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
Embed GrapesJS in Your SaaS: A Weekend Guide
Embed GrapesJS in your SaaS and ship a white-label page builder over a weekend. Honest tradeoffs, real code, and the plugins that close the UX gap.
Explorar categorías de plugins
Ve directamente a las páginas de categorías de plugins en el marketplace.