Issue #1262✓ ResueltoAbierto el 5 de julio de 2018por algodata44Reacciones 5

Celda editable

Respuesta rápidapor cody19914

Mi solución: '''s editor. Components.addType('cell', { isComponent(el) { si (!( ['td', 'th'].indexOf(el.tagName?. toLowerCase()) >= 0)) { return false; } const allChildNodes: Node[] = []; function collectChildNodes(arr: Node) { const { childNodes } = arr; si (childNodes.length > 0) { para (sea índice = 0; índice < chi...

Lee la respuesta completa abajo ↓

Pregunta

Hola, Estoy usando GrapesJS para newsletters (con el plugin gjs-preset-newsletter) y tengo un problema al importar código. No puedo editar las cajas del tipo 'celda' (tds, trs...). Leí que es un parámetro e intenté cambiarlo, sin éxito. ¿Hay alguna forma de hacerlo sin cambiar el código fuente?

Respuestas (3)

👍 Muy útilcody199110 de abril de 2023

Mi solución:

'''s editor. Components.addType('cell', { isComponent(el) { si (!( ['td', 'th'].indexOf(el.tagName?. toLowerCase()) >= 0)) { return false; }

const allChildNodes: Node[] = []; function collectChildNodes(arr: Node) { const { childNodes } = arr; si (childNodes.length > 0) { para (sea índice = 0; índice < childNodes.length; índice += 1) { const arrayNodeChildNode = childNodes[index]; si (arrayChildNode.childNodes?. longitud > 0) { collectChildNodes (arrayChildNode); } else { allChildNodes.push (arrayChildNode); } } } else { allChildNodes.push(arr); } } collectChildNodes(el);

return !allChildNodes.every( (ítem) => nodo.tipo === 3 || ¿nombre.nodo?. toLowerCase() === 'br', ); }, });


Recoge todos los childNodes, si todos los childNodes son textNode o elemento 'br', creo que no es un td, devuelven a un Text Wrapper y el usuario puede editar el contenido
artf11 de julio de 2018

Deberías envolver el texto con otra etiqueta. Si no puedes cambiar el contenido, probablemente deberías tener que extender el componente original Por ejemplo, dentro de isComponent puede hacer algún tipo de cambio '''js isComponent(el) { Sea resultado = ''; etiqueta const = el.etiquetaNombre;

if (tag == 'TD' || tag == 'TH') { resultado = { Tipo: 'Célula', etiquetaNombre: etiqueta.toLowerCase() };

si ( /* por ejemplo, el tiene un elemento de nodo de texto */ ) { result.components = '<div>${el.innerText}</div>' } }

resultado de retorno; }

Shah-ali6 de julio de 2018

Tengo el mismo problema, estoy esperando la respuesta... #1257

Preguntas y respuestas relacionadas

Continúa investigando con debates sobre temas similares.

Plugins de pago que cumplen con este problema

Seleccionado por temas clave y relevancia de etiquetas para ayudarte a enviar más rápido.

Ver todos los plugins

Cargando recomendaciones de plugins de pago...

Opción gratuita

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 →
Opción premium

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.

Todos los tutoriales →

Explorar categorías de plugins

Ve directamente a las páginas de categorías de plugins en el marketplace.