Id se añade al <img/> hacer doble clic
El id parece añadirse mucho antes de abrir el gestor de activos:clonar y dirigir el proyectoañadir una imagen al archivo index.htmlInspeccionar este elemento de imagen: está el id en el elemento dom
Lee la respuesta completa abajo ↓Pregunta
Versión:
0.16.37
¿Puedes reproducir el error de la demo?
[X] Sí [ ] No
¿Cuál es el comportamiento esperado?
Se trata del plugin GrapesJS-mjml: esta sintaxis no acepta id en los elementos. Pero AssetsManager añade ids a los elementos de imagen. Me gustaría no añadir atributos id a <img> las etiquetas
Pasos para reproducir
- clonar y dirigir el proyecto
- añadir una imagen al archivo index.html
- abrir el visor de códigos: sin ID
- doble clic en la imagen
- Cerrar el gestor de activos
- abrir el visor de códigos: se ha añadido un id a la etiqueta
Puedes encontrar el número de GrapesJS-mjml aquí: https://github.com/artf/grapesjs-mjml/issues/179
Respuestas (4)
El id parece añadirse mucho antes de abrir el gestor de activos:
- clonar y dirigir el proyecto
- añadir una imagen al archivo index.html
- Inspeccionar este elemento de imagen: está el id en el elemento dom
He encontrado una pista en '/Users/thomaspopoff/Sites/grapesjs/src/code_manager/model/HtmlGenerator.js' línea 10, el 'opts.cleanId' siempre está indefinido. No sé cómo ponerlo en verdadero para eliminar los IDs generados automáticamente
Vale, perdón por todo mi diálogo interno: hay una opción 'opts.cleanId' dentro de la función 'getHtml()' que puedes configurar para eliminar identificadores generados automáticamente...
Gracias por informar de esto, @ThomasPof.
El problema con id se añade <img/> al hacer doble clic en él parece ser una condición de carrera o un problema de sincronización de gestión de estado. Esto suele ocurrir cuando los eventos del ciclo de vida de los componentes y las modificaciones del DOM se superponen, creando un estado inconsistente.
Qué probar:
- Añadir un envoltorio setTimeout para asegurar que el DOM se ha asentado: '''javascript setTimeout(() => { Tu operación aquí }, 0);
2. **Comprobar el orden de inicialización** — asegúrate de que los componentes estén completamente cargados antes de interactuar con ellos
3. **Utilizar el sistema de eventos del editor** — escuchar los eventos de finalización:
'''javascript
editor.on('component:mount', (component) => {
Es seguro interactuar con el componente aquí
});
Recomendaciones de siguientes pasos:
- Prueba con la última versión de GrapesJS si no lo has hecho
- Proporcionar un ejemplo mínimo reproducible (CodeSandbox) — esto ayuda al equipo a identificar la causa raíz más rápido
- Incluir errores de GrapesJS, de navegador y de consola en tu informe
Preguntas y respuestas relacionadas
Continúa investigando con debates sobre temas similares.
Issue #3612
Los botones deslizantes y las pestañas de Grapesjs no funcionan como se esperaba
Versión 0.17.19(grapesjs) Versión 0.1.5(grapesjs-lory-slider) Versión 1.0.6(grapesjs-tabs) ¿Puedes reproducir el error de la demo? No ¿Cuál...
Issue #3291
ERROR (v0.16.41): el icono duplicado de la barra de herramientas de iconos también está modificando el elemento original
Versión: v0.16.41 ¿Puedes reproducir el error de la demo? [ ] Sí ¿Cuál es el comportamiento esperado? Los elementos duplicados no deberían...
Issue #3731
El elemento de texto no puede seleccionarse dos veces después de extenderse con eventos
Versión: 0.17.25 ¿Puedes reproducir el error de la demo?[ ] Sí[x] No ¿Cuál es el comportamiento esperado? Actualiza un componente existente...
Issue #3613
Selección de imagen inconsistente
Versión: 0.17.19 ¿Puedes reproducir el error de la demo?[X] Sí[ ] No Reproducible aquí. ¿Cuál es el comportamiento esperado? Seleccionar im...
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
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
Big Updates: TinyMCE 8 and Placeholder 2.0 for GrapesJS
In May we shipped major updates to two of our most popular GrapesJS plugins — TinyMCE Inline Text Editor and Placeholder.
Tutorial
Find the Right GrapesJS Plugin in Seconds: Smarter Discovery Is Live
We're shipping a set of discovery upgrades. New label filters, a proper compatibility switch for GrapesJS vs Studio, one-click and a smarter sort bar.
Explorar categorías de plugins
Ve directamente a las páginas de categorías de plugins en el marketplace.