Issue #2214💬 RespondidoAbierto el 23 de agosto de 2019por Firefox2005Reacciones 0

SVG Element no es un SVGElement real

Respuesta rápidapor artf

El código devuelve Verdadero en Firefox pero Falso en Safari y Chrome, aunque puedo verificar en la pestaña de Propiedades de Chrome, que efectivamente es de tipo SVGElement. Raro, parece un problema con cromo...

Lee la respuesta completa abajo ↓

Pregunta

Comportamiento Uso un código Javascript externo que reemplaza dinámicamente algunos elementos SVG según sus atributos. El código Javascript primero comprueba el tipo del elemento a validar, que es un SVGElement así:

'document.querySelector('#someId') instancia de SVGElement'

El código devuelve Verdadero en Firefox pero Falso en Safari y Chrome, aunque puedo verificar en la pestaña de Propiedades de Chrome que efectivamente es de tipo SVGElement.

Cómo creo el Elemento SVG Probé diferentes cosas pero acabé usando un plugin.

component.js '''javascript domc.addType('myType', { isComponent: function(el) { if(el.tagName == 'svg' && el.classList && el.classList.contains('someClass')) return {type: 'myType'}; }, extiende: 'svg', modelo: { Predeterminados: { Tipo: 'SVG', etiquetaNombre: 'svg', nombre: 'SomeName', rasgos: [...], atributos: { clase:'algunaClase', ... }, script: función () { console.log(document.querySelector('.someClass')); console.log(document.querySelector('.someClass') instancia de SVGElement) ... }, } } });

**_blocks.js_**
'''javascript
bm.add('myBlock', {
    etiqueta: 'algunaEtiqueta',
    categoría: 'algunaCategoría',
    nombre: 'nombreBloque',
    contenido: '<svg class="someClass"\
                ...\
              '</svg>
});

Información adicional Según esto: https://stackoverflow.com/questions/24174975/document-createelementsvg-instanceof-svgelement-is-false Los elementos SVG son especiales, pero por lo que veo en src/dom_components/view/ComponentSvgView.js supongo que están creados correctamente.

Por supuesto, no hay nada malo en el código HTML generado al usarlo, ya que los navegadores usan el SVG correcto, simplemente no aparece al editar en GrapesJS.

Respuestas (1)

artf26 de agosto de 2019

El código devuelve Verdadero en Firefox pero Falso en Safari y Chrome, aunque puedo verificar en la pestaña de Propiedades de Chrome, que efectivamente es de tipo SVGElement.

Raro, parece un problema con cromo...

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.