El modal de enlace personalizado no actualiza el texto actual, sino que añade otro texto con enlace
Me gustaría añadir uno más, dentro del handler onclick para btnLink, '<a class="link" href="${inputEl.value}">${rte.selection()}</a>' devuelve '<a class="link" href="..."></a>' el texto interno está vacío.. No tengo ni idea de cómo abordar esto
Lee la respuesta completa abajo ↓Pregunta
Hola Artur,
Estoy intentando tener un modal personalizado al pulsar el botón de enlace en RTE. Pero no convierte el texto seleccionado a enlace, sino que añade otro texto con enlace.
this.editor.RichTextEditor.add('custom-link', {
icono: '<img src="assets/images/link.png" />',
atributos: {título: 'Enlace', clase: 'gjs-rte-acción'},
Resultado: RTE => {
Define qué está ocurriendo dentro de modal
const customLinkContainer = document.createElement('div');
const btnLink = document.createElement('button');
const linkInputEl = document.createElement('input');
linkInputEl.setAttribute('id', 'custom-link-input');
linkInputEl.value = '<a class="link" href="asdf">${rte.selection()}</a>'
btnLink.innerHTML = 'aa';
btnLink.onclick = () => {
const inputEl = document.getElementById('custom-link-input');
const selectedEl = this.rte.selection();
rte.insertHTML('<a class="link" href="${inputEl.value}">${rte.selection()}</a>');
modal.close();
};
customLinkContainer.appendChild(linkInputEl);
customLinkContainer.appendChild(btnLink);
configurar modal
modal.setTitle(t('Enlace'));
modal.setContent(customLinkContainer);
modal.open();
}
});
Gracias...
Respuestas (3)
Me gustaría añadir uno más, dentro del handler onclick para btnLink, '<a class="link" href="${inputEl.value}">${rte.selection()}</a>' devuelve '<a class="link" href="..."></a>' el texto interno está vacío.. No tengo ni idea de cómo abordar esto
- Cambia esto: 'rte.insertHTML('<a class="link" href="${inputEl.value}">${rte.selection()}</a>');' to 'rte.insertHTML(linkInputEl.value);'
- 'rte.selection()' estará vacío porque se pierde el foco, aprende a almacenar la selección (por ejemplo, https://stackoverflow.com/questions/9841082/execcommand-inserthtml-breaks-stored-window-getselection), esa parte depende de ti.
Este hilo se ha bloqueado automáticamente porque no ha habido actividad reciente desde que se cerró. Por favor, abre un nuevo problema para bugs relacionados.
Preguntas y respuestas relacionadas
Continúa investigando con debates sobre temas similares.
Issue #1639
[Pregunta]: ¿Sería posible cambiar la configuración en el gestor de estilos de forma que tenga href cuando se crea un enlace?
Estoy usando un boletín predefinido con RTE integrado (no quiero usar el editor CK como en la demo) Para convertir cualquier texto en enlac...
Issue #1650
[Pregunta] Cómo eliminar un enlace del texto (eliminar un enlace)
usando RTE integrado e intentando añadir un botón personalizado de RTE que, al hacer clic, elimine el enlace actual. ¿Podrías darme el códi...
Issue #1959
[Pregunta] Editar innerHTML en un botón personalizado
Hola a todos, Estoy intentando cambiar el texto en un componente de botón, pero no consigo editarlo. He añadido este tipo: Incluí el paráme...
Issue #1633
[Error]: editor.runCommand('gjs-get-inlined-html') devuelve indefinido (preset-webpage)
Hola, Artur Estoy usando grapesjs-preset-webpage v0.1.10, grapesjs v0.14.29 Estoy intentando guardar plantillas con CSS en línea en lugar d...
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.
Explorar categorías de plugins
Ve directamente a las páginas de categorías de plugins en el marketplace.