SVG Element no es un SVGElement real
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)
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.
Issue #826
[Bug] El ID generado automáticamente por elementos no se vuelve a añadir después de usar el ID personalizado y luego borrarse
Hola, Creo que hay un error relacionado con la generación de atributos de id de elemento. Al modificar el estilo del elemento, el valor del...
Issue #1914
[Bug] Cambia la unidad de tamaño de fuente por defecto a EM en lugar de REM.
Ahora, en el editor GrapesJS, tenemos algunos tamaños de fuente en 'REM'. Creo que deberían estar en la unidad 'EM' porque si queremos incr...
Issue #3137
Cuando selecciono un elemento en particular, no obtengo sus estilos. Este problema solo ocurre con algunos elementos.
No captando estilos del elemento seleccionado Aquí está mi código, Modelo const = editor. StyleManager.getModelToStyle(component); sea styl...
Issue #1599
[Bug] Arrastrar y soltar el renderizado incorrecto
Versión 0.14.40Haz clic en "Continuar"Seleccione el encabezado "¡Te has registrado con éxito!" (sqh-header)Arrastra el bloque de cabecera e...
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.