javascript - 命名空间 SVG 上的交互

标签 javascript reactjs svg namespaces visio

我正在尝试在网页上插入一个 SVG 图并添加 JavaScript 交互。
我的问题:SVG 包含具有命名空间的元素,当我内联插入它时,只呈现非命名空间元素。我试过直接插入 html、innerHTML 和 SVGjs library ,都给出相同的结果。
有没有办法在页面上呈现命名空间的 SVG 并与之交互?
作为记录,SVG 文件来自 Visio,我无法控制命名空间。另外,如果有帮助,我正在使用 Reactjs。
示例脚本(两种方法都可以工作,但会去除命名空间元素):

fetch (fileURL)
.then(response => response.text())
.then((image) => {
  let startOfSvg = image.indexOf('<svg')
  startOfSvg = startOfSvg >= 0 ? startOfSvg : 0

  // innerHTML method
  document.getElementById("map").innerHTML = image.slice(startOfSvg);

  // svg.js library
  const draw = SVG(image.slice(startOfSvg))
    .addTo('#map')
    .size('100%', 450);
}

最佳答案

有一个复选框可以在没有 visio 命名空间的情况下导出 SVG。除此之外,您可以查看我的导出器(它也可以导出纯 svg,具体取决于您使用的模板):https://unmanagedvisio.com/products/svg-publish

关于javascript - 命名空间 SVG 上的交互,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65205011/

相关文章:

javascript - 有没有办法在 Reactjs 中设置元素的初始高度?

reactjs - 如何在没有 Create-react-app 的情况下创建 React 应用程序

javascript - 如何从 SVG 路径字符串获取像素坐标

javascript - Raphael.js 围绕中心点的不规则路径

javascript - d3js 径向整洁树 - dx 和 dy 是如何填充的?

javascript - 使用 jQuery 进行 JSON 树搜索,错误

javascript - 对于提供的参数,Wasm 编译超出了此上下文中的内部限制

javascript - 如何在侧边栏中制作可折叠列表

javascript - 如何从子模块访问父方法?

javascript - Box2d.js 与 Processing.js