Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

119
Vistas
¿Cómo obtener svg en línea desde un archivo svg externo con D3 v6?

Acabo de perder toda la mañana en lo que debería haber sido una tarea muy básica y directa. Lo siento si la solución a este problema es obvia para usted, estoy comenzando con D3.js y Javascript.

Estoy buscando cargar, en D3, un archivo svg externo y tenerlo como un svg en línea para realizar más operaciones, no como una imagen estática, y trabajando en archivos locales. No entiendo cómo no puede haber una manera de hacer algo tan simple y básico. He intentado todo lo que pude:

  • Usando esta biblioteca: https://github.com/iconfu/svg-inject . Esta biblioteca promete hacer exactamente lo que quiero hacer. Sin embargo, sus ejemplos básicos (sección de uso básico) me dan imágenes estáticas y no svg en línea como se prometió (con Firefox 98.0), por lo que no puedo usarlo.
  • Probé el ejemplo aquí: http://www.zevross.com/blog/2019/08/20/load-external-svgs-with-d3-v5/ (sección "Obtener los datos XML / Cargar una ilustración, una vez ") con un svg local, solo muestra una ventana en blanco; "Inspeccionar elemento" muestra que no se cargó nada
  • Soluciones como la aceptada en esta publicación ( Cómo acceder a elementos SVG con Javascript ) tampoco son útiles, ya que no funcionan en archivos locales
  • Una llamada a d3.xml ( https://bl.ocks.org/mbostock/1014829 ) también resultó ser completamente inútil, ya que no muestra nada:
 <!DOCTYPE html> <html> <head> <script src="https://d3js.org/d3.v6.min.js"></script> </head> <body> <script> d3.xml('nameOfMysvgFile.svg') .then(data => { document.body.append(data.documentElement) }) </script> </body> </html>

Hasta ahora, lo mejor que logré fue cargar mi svg como un objeto (como se hace aquí: http://dahlström.net/svg/html/get-embedded-svg-document-script.html ), y luego estoy atascado , ya que no puedo hacer ninguna operación en Javascript en ese objeto. ¿Cómo transferir el contenido del objeto a svg en línea? O como sacar ese "envoltorio" de #documento que impide hacer nada en el svg? O incluso mejor, agregar el contenido a un contenedor svg existente ( mySvgContainer.append("g").[magic command to add the contents of external svg file] )?

about 4 years ago · Juan Pablo Isaza
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda