Los enlaces ancla con navegación por hash no funcionan en modo de vista previa
Pregunta
Versión GrapesJS
- Confirmo que uso la última versión de GrapesJS
¿Qué navegador usas?
Chrome 143.0.7499.41
Enlace de demo reproducible
https://jsfiddle.net/mghzw41k/2/
Describe el bicho
En modo de vista previa, los enlaces de ancla con navegación por hash (por ejemplo, href="#section") no funcionan. Se impide el comportamiento predeterminado de navegación del navegador, aunque el modo de vista previa debería (creo) permitir interacciones normales con las páginas.
¿Cómo reproducir el bicho?
- Inicializar el editor GrapesJS
- Añadir contenido con un enlace ancla que apunte a una sección: '<a href="#about">Ir a Acerca de'</a>
- Añadir una sección objetivo: '<section id="sobre">Sección Acerca</section> de"
- Entrar en modo de vista previa
- Haz clic en el enlace del ancla
Comportamiento esperado: La página de vista previa debería desplazarse hasta la sección de destino al hacer clic en el enlace de anclaje, como ocurre en un navegador normal.
Comportamiento real: No pasa nada al hacer clic en el enlace de ancla. Se evita el comportamiento de navegación por defecto.
Código JSFiddle '''html
<script src="https://cdn.jsdelivr.net/npm/[email protected]/dist/grapes.min.js"></script> <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/[email protected]/dist/css/grapes.min.css"> <div id="gjs"></div> ```'''js const editor = grapesjs.init({ Contenedor: '#gjs', });
editor.on('load', () => { editor.setComponents(' <div> <a href="#about" style="display: inline-block; addding: 10px; fondo: #007bff; color: blanco; text-decoration: none; border-radius: 4px;">Haz clic para navegar a About</a> </div> <div style="height:1000px;background:red;"> <span>... Espaciado...</span> </div> <sección id="sobre" style="relleno: 20px; fondo: #f0f0f0;"> <h2>Sobre mí</h2> <p>Esta es la sección de información a la que el botón debería acceder.</p> </section> `); });
### Código de conducta
- [x] Acepto seguir el Código de Conducta de este proyecto
Respuestas (2)
Me encontré con el mismo problema.
Gracias por informar de esto, @OfirD1.
¡Gran sugerencia sobre los enlaces ancla con navegación hash no funcionan en modo previsualización! Aunque esta función específica aún no está en la API principal, existen varias formas de lograr un comportamiento similar.
Usando el sistema de eventos: '''javascript editor.on('component:update', (component) => { Tu lógica aquí });
**Enfoques alternativos:**
- Escuchar 'selector:add' para cambios en el selector CSS
- Usar 'selector:custom' para reglas personalizadas
- Aprovechar los eventos 'change:*' para un seguimiento detallado
- Crear un plugin que extienda el editor con esta capacidad
**Lo hace oficial:**
Si esta función beneficiaría a muchos usuarios, considera abrir una Solicitud formal de Funcionalidad en el repositorio GrapesJS con:
- Un caso de uso detallado
- Ejemplo de código que muestra el comportamiento deseado
- Por qué esto es importante para tu flujo de trabajo
El equipo central es receptivo a solicitudes de funcionalidades bien motivadas respaldadas por casos de uso reales.
Preguntas y respuestas relacionadas
Continúa investigando con debates sobre temas similares.
Issue #5718
Posible problema con la ruta de actualización donde 'textnode' ahora se llama 'wrapper' desde la versión 0.18 hasta la > última
Versión GrapesJS [X] Confirmo que se debe usar la última versión de GrapesJS ¿Qué navegador usas? Chrome Versión 122.0.6261.95 (Versión ofi...
Issue #4904
getHtml() produce una estructura inválida cuando hay js dentro
Versión GrapesJS[X] Confirmo que se debe usar la última versión de GrapesJS¿Qué navegador usas? Última versión de ChromeEnlace de demo repr...
Issue #4503
Faltan estilos en línea usados por CKEditor al añadir componentes html en bruto
Versión GrapesJS [X] Confirmo que se debe usar la última versión de GrapesJS ¿Qué navegador usas? Chromium v96 Enlace de demo reproducible...
Issue #4191
Estamos intentando almacenar los datos del editor grapesJS en la aplicación Angular 10, obteniendo un error CORS, imagen adjunta abajo
Versión GrapesJS [x] Confirmo que uso la última versión de GrapesJS ¿Qué navegador usas? Chrome 99.0.4844.5 Enlace de demo reproducible htt...
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 →Explorar categorías de plugins
Ve directamente a las páginas de categorías de plugins en el marketplace.