javascript - 如何将 SVG 附加到 <div>?

标签 javascript angularjs json svg

虽然在 SO 上有很多关于如何在 div 中附加 SVG 的答案,但我无法让它们中的任何一个为我工作。可能是因为我以前从未使用过 SVG。

因此,我在我的节点服务器上创建了一个 SVG,然后创建了一个包含一些其他数据的 JSON 对象以及其中的 SVG

svgFiles.push({
   'file': svgDump, //This holds well created SVG
   'vp': JSON.stringify(viewport),
   'page': pageNum
});

然后将它作为对我的 angularjs 代码的响应发回。

$http({ ... }).then(function callback(resp) { // request to node server
  var svg = resp.data.file;
  var container = document.createElement('div');
  var oldContent = container.innerHTML; // There is going to be an array of objects with SVG data hence i need the 'APPEND' functionality
  // But currently assuming there is only 1 object for demo purpose
  container.innerHTML = oldContent + svg;
})

现在我已将我的 SVG 保存在一个变量中,我希望将它附加到任何 DIV 中都应该有效。

虽然它确实有效,但它都是纯文本,包括@font-face、src 等内容。

我确定我缺少某些东西或没有做正确的事情。我怎样才能做到这一点?

最佳答案

终于在 friend 的帮助下找到了解决办法。

我需要做的就是:

$http({ ... }).then(function callback(resp) { // request to node server
  var svg = resp.data.file;
  var container = document.createElement('div');
  var parser = new DOMParser();
  var doc = parser.parseFromString(svg, "image/svg+xml");
  container.appendChild(doc.documentElement);
});

关于javascript - 如何将 SVG 附加到 <div>?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41331760/

相关文章:

javascript - 通过 Rails 中的自定义 Jquery 对话框处理链接确认

javascript - Angular ui 布局切换不起作用

json - 如何将 JSON 解码为通过反射创建的值?

java - 为什么在 android 中提取 Json 会出现异常?

javascript - 创建 javascript Date() 对象到 America/New_York 时区

javascript - 无法从 JSON 对象获取数据

javascript - 在 JavaScript 中当屏幕分辨率小于 767px 时添加类

angularjs - 使用 ng-repeat 更新 Angular 模型

javascript - 一直显示错误信息。如何处理这个错误?

python - 使用 Python 格式化 HTML 到 JSON