Issue #3053✓ ResueltoAbierto el 30 de septiembre de 2020por anushabiveraReacciones 5

Permitir al usuario añadir dinámicamente una hoja de estilo global al canvas

Respuesta rápidapor RJCAM4

Hola @anushabivera si quieres cargar las hojas de estilo en init (local y con CDN) puedes simplemente añadir los enlaces css/js a la propiedad canvas en la función init del editor, así: Si quieres añadirlos dinámicamente puedes probar esto (ejemplo con materialize): Por cierto: Esta pregunta ya se ha hecho, si tienes...

Lee la respuesta completa abajo ↓

Pregunta

Hola, Quería ofrecer al usuario la opción de cargar una hoja de estilo personalizada en el lienzo. Esto es para que el usuario pueda aplicar los estilos definidos a medida al control como clase en lugar de estilo en línea y también para mantener la uniformidad entre los distintos usuarios usando la herramienta de editor basada en grapesjs para generar la plantilla html. ¿Grapesjs ya soporta cargar hojas de estilo dinámicamente? Cualquier orientación sobre este tema me será de gran ayuda.

Gracias, Anusha

Respuestas (3)

👍 Muy útilRJCAM30 de septiembre de 2020

Hola @anushabivera si quieres cargar las hojas de estilo en init (local y con CDN) puedes simplemente añadir los enlaces css/js a la propiedad canvas en la función init del editor, así:

const editor = grapesjs.init({
    ...
    lienzo: {
        Estilos: [
            'example-of-css-file.css',
            'otro-css-va-aquí'
        ],
        guiones: [
            'example-of-js-file.js',
            'otro-js-va-aquí'
        ]
    }
});

Si quieres añadirlos dinámicamente puedes probar esto (ejemplo con materialize):

cabeza const = editor. Canvas.getDocument().head;
head.insertAdjacentHTML('beforeend', '<link href="https://fonts.googleapis.com/icon?family=Material+Icons" rel="stylesheet">');
head.insertAdjacentHTML('beforeend', '<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/materialize/1.0.0/css/materialize.min.css">');
head.insertAdjacentHTML('beforeend', '<script src="https://cdnjs.cloudflare.com/ajax/libs/materialize/1.0.0/js/materialize.min.js"></script>');

Por cierto: Esta pregunta ya se ha hecho, si tienes dudas, puedes obtener más información abajo (principalmente sobre 66 y 1739): #66 #195 #444 #473 #966 #1739

theSC0RP10 de noviembre de 2020

¡Lo tengo! Lo eliminé usando un id en la etiqueta de enlace.

anushabivera2 de octubre de 2020

Gracias@RJCAM. Mi plan es proporcionar la funcionalidad como un atributo del lienzo y que el usuario pueda introducir la URL de la hoja de estilos personalizada como valor del atributo

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 →

Explorar categorías de plugins

Ve directamente a las páginas de categorías de plugins en el marketplace.