Issue #2350✓ ResueltoAbierto el 23 de octubre de 2019por AbdiasMReacciones 14

¿Cómo añado elementos/sectores al contenedor de vistas usando un botón personalizado en el Panel

Respuesta rápidapor pouyamiralayi13

@AbdiasM @ko06 perdón por llegar tarde a esto! basado en el #277 ¡Salud!

Lee la respuesta completa abajo ↓

Pregunta

Fragmento de códigoTEXT
He añadido un botón personalizado al Panel como se indica a continuación:

const pm = editor. Paneles;        
        pm.addButton('views', {
            id: 'customButton',
            NombreClase: '',
            Orden: {
                run: function (editor) {
                    alerta("Hola");
                },
                stop: function (editor) {

}
            },
            atributos: { clase: 'fa fa-address-card-o' },
            activo: falso,
        });

Me gustaría añadir elementos personalizados en el contenedor de vistas cuando se pulse este botón. Captura de pantalla adjunta. ¿Podrías ayudarme con esto, por favor?

! [ClickBotón Personalizado](https://user-images.githubusercontent.com/18558443/67381298-540e1d00-f5a9-11e9-8c79-4d3284820d32.PNG)

Respuestas (3)

👍 Muy útilpouyamiralayi18 de febrero de 2020

@AbdiasM @ko06 perdón por llegar tarde a esto! basado en el #277

        const pn = editor. Paneles
        let editPanel = null
        pn.addButton('views', {
            id: 'editMenu',
            atributos: {clase: 'fa fa-card-address-o', título: "Menú de edición"},
            activo: falso,
            Orden: {
                run: function (editor) {
                    if(editPanel == null){
                        const editMenuDiv = document.createElement('div')
                        editMenuDiv.innerHTML = '
                        <div id="tu-content">
                             Entrada: <input/>
                             <button>Botón</button> 
                              <!-- ejemplo, asignar un evento de clic en un botón y hacer algo con la API GrapesJS -->
                        </div>
                    `
                        paneles const = pn.getPanel('views-container')
                        panels.set('appendContent', editMenuDiv).trigger('change:appendContent')
                        editPanel = editMenuDiv
                    }
                    editPanel.style.display = 'bloqueo'
                },
                stop: function (editor) {
                    if(editPanel != null){
                        editPanel.style.display = 'ninguno'
                    }
                }

}
        })

¡Salud!

hc012712 de diciembre de 2023

Hola, @pouyamiralayi. Gracias por tu publicación. Tengo un contenedor de vista personalizada. Pero quiero usar componentes de React en esa parte. ¿Es posible? Si es así, por favor, ayudadme.

ko0624 de octubre de 2019

¿Esto está arreglado?

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.