Keymaster no desvincula las pulsaciones de teclas.
me pregunto si el comando de desvincular en Keymaster estaba pensado para manejar una tecla individual en lugar de varias en caso de retroceso, pero copiar/pegar/deshacer/rehacer funciona correctamente. Bueno, funciona con otros keymaps, así que diría que maneja esa opción, pero no tengo ni idea de qué está mal con 'r...
Lee la respuesta completa abajo ↓Pregunta
Esto es reproducible en el sitio de demostración que ejecuta '''0.16.12'''.
En la consola, ejecuta ''editor. Keymaps.removeAll()''' e intenta eliminar un componente. Elimina el componente, y no creo que deba hacerlo. Parece que los otros mapas de teclas se desvinculan bien.
No estoy seguro de si esto es un problema de grapesjs o keymaster. Me di cuenta de esto cuando estaba añadiendo un keymap personalizado para las teclas de flecha y no se limpiaba cuando llamaban a '''editor.destroy()'.
Me di cuenta de que podía desasignar el comando de borrar así:
editor. Keymaps.keymaster.unbind('retroceso');
editor. Keymaps.keymaster.unbind('delete');
Me pregunto si el comando de desvincular en Keymaster estaba pensado para manejar una tecla individual en lugar de varias en el caso de retroceso, pero que copiar/pegar/deshacer/rehacer funcionan correctamente.
Parece que una solución sencilla podría ser separar la cadena de ''keymap.keys' aquí y desvincular las teclas individualmente. También he notado que Keymaster no se ha actualizado en un tiempo, así que quizá valga la pena cambiarlo. Estoy dispuesto a abrir un PR por esto.
Respuestas (3)
me pregunto si el comando de desvincular en Keymaster estaba pensado para manejar una tecla individual en lugar de varias en caso de retroceso, pero copiar/pegar/deshacer/rehacer funciona correctamente.
Bueno, funciona con otros keymaps, así que diría que maneja esa opción, pero no tengo ni idea de qué está mal con 'retroceder, eliminar' (con 'eliminar, retroceso' incluso aparece un error ???)
Parece que una solución sencilla podría ser partir la cadena keymap.keys aquí y desvincular las teclas individualmente
De acuerdo, pero ¿qué pasa con tu caso de 'estaba añadiendo un mapa de teclas personalizado para las teclas de flecha'? ¿Funciona con el split? La publicidad es muy bienvenida :)
También he notado que Keymaster no se ha actualizado en un tiempo, así que quizá valga la pena cambiarlo
Sí, yo también lo he notado, pero probablemente eso requiera algo de trabajo. ¿Ya conoces alguna buena alternativa?
Hombre... He revisado Keymaster y esa función de desvincular maneja varias teclas, así que el problema debe estar en otro sitio. No noté nada llamativo cuando miré. No aparecen errores cuando intento desvincular la tecla.
Estoy usando GrapesJS en una app de una sola página, así que necesito destruir GrapesJS y volver a encenderlo sin que el navegador se recargue. Así fue como encontré el error al principio. Cuando destruyes, reinicias y usas las teclas de borrar o de retroceder, la llamada de regreso se llama al objeto editor original y no al nuevo, que genera un error.
Estoy ejecutando esto antes de llamar a '''editor.destroy()''' y parece funcionar bien. No tengo ni idea de por qué Keymaster no funciona. '''javascript teclas const = 'arriba, abajo, izquierda, derecha, shift+arriba, shift+abajo, shift+izquierda, shift+derecha, shift + derecha, retroceso'; keys.split(/, ?/).forEach((key) => { this.editor.Keymaps.keymaster.unbind(key); });
No he usado ningún plugin de mapeo de teclas antes, pero estaría más que contento abriendo un PR. ¿Te va bien el método de separar cuerdas? Parece que Keymaster hace lo mismo que yo estaba haciendo.
¿Te va bien el método de separar las cuerdas?
Claro, veamos si funciona
Preguntas y respuestas relacionadas
Continúa investigando con debates sobre temas similares.
Issue #5346
Eliminar un componente sin eliminar su estilo correspondiente
Versión GrapesJS [X] Confirmo que se debe usar la última versión de GrapesJS ¿Qué navegador usas? última versión de Chrome Enlace de demo r...
Issue #6606
El editor tarda mucho en cargar (a veces más de 1 minuto)
Versión GrapesJS [x] Confirmo que uso la última versión de GrapesJS ¿Qué navegador usas? Firefox Enlace de demo reproducible https://grapes...
Issue #6152
El CSS añadido mediante código personalizado persiste después de que se elimina un componente de código personalizado
Versión GrapesJS [X] Confirmo que se debe usar la última versión de GrapesJS ¿Qué navegador usas? Cualquiera Enlace de demo reproducible ht...
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...
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.