Issue #576✓ ResueltoAbierto el 28 de noviembre de 2017por ryandebaReacciones 5

El contenido de texto no siempre se puede editar

Respuesta rápidapor artf3

Gracias, Daniel, estoy de acuerdo contigo y me encargaré de tus sugerencias. Solo quiero señalar, en el cuarto caso, que también puedes indicar explícitamente al editor dónde es un componente de texto '''html <div data-gjs-type="text"> Un nodo de texto <div>Texto a editar</div> <ul>...</ul> </div> ```

Lee la respuesta completa abajo ↓

Pregunta

Hola @artf,

He notado que si añado un componente que contiene una combinación de texto y una <a>etiqueta '', el texto no es editable como suele ser. Si sustituyo la etiqueta '<a>' por una '<span>', entonces puedo editar el texto sin problema. Aquí hay algo para ilustrar a qué me refiero (fíjate en las últimas dos líneas de código para alternar entre un ejemplo roto y uno funcional): https://jsfiddle.net/wycrpkay/3/. Esto puede estar ocurriendo con etiquetas distintas de '<a>', pero esa es la única que he notado que es problemática hasta ahora.

Me parece que el componente se analiza como el tipo de componente por defecto en lugar de un componente de texto, pero no consigo entender por qué la presencia de la <a>etiqueta '' (y no de otras etiquetas) podría causar esto. He visto que ComponentText.js no tiene una función 'isComponent', así que no entiendo muy bien cómo se hace esa distinción. Voy a seguir investigando esto, pero agradecería cualquier opinión que tengáis sobre por qué está pasando esto.

¡Gracias!

EDITO: He encontrado 'ParserHtml.parseNode()'... Añadir 'comp.type != 'link'' a la sentencia if que empieza en la línea 183 parece hacer lo que quiero: if(comp.type != 'text' & & comp.type != 'textnode' && comp.type != 'enlace' & & c.textTags.indexOf(comp.tagName) < 0 ){ Aunque no me siento muy bien con ese cambio. Siento que quiero que esas comprobaciones solo vean si todos los hijos son editables ('comp.get("editable")') en lugar de todas las comprobaciones de texto/textnode/enlace, pero eso no parece posible aquí ya que solo tenemos objetos componentes simples (parece que es simplemente lo que se devuelve desde las funciones 'isComponent'). No sé qué hacer...

Respuestas (3)

👍 Muy útilartf1 de diciembre de 2017

Gracias, Daniel, estoy de acuerdo contigo y me encargaré de tus sugerencias. Solo quiero señalar, en el cuarto caso, que también puedes indicar explícitamente al editor dónde es un componente de texto '''html

<div data-gjs-type="text"> Un nodo de texto <div>Texto a editar</div> <ul>...</ul> </div> ```
duskhacker28 de noviembre de 2017

Yo también me estoy encontrando con esto.

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.