javascript - 在本地保存 d3js 图

标签 javascript svg d3.js save

我正在使用 d3js 创建一个绘图。我还想让用户能够将该绘图本地保存在他的计算机上。因此,我使用了 this question 中提到的代码的稍微更改的版本。创建该图的可下载图片。

所以我有以下代码:

$("svg").attr({ version: '1.1' , xmlns:"http://www.w3.org/2000/svg"});

var svg = $("#chart-main").html();  var b64 = btoa(unescape(encodeURIComponent(svg)));//Base64.encode(svg); // or use btoa if supported

// Works in recent Webkit(Chrome)  
$("body").append($("<img src='data:image/svg+xml;base64,\n"+b64+"' alt='file.svg'/>"));


 // Works in Firefox 3.6 and Webit and possibly any browser which supports the data-uri
  $("body").append($("<a href-lang='image/svg+xml' href='data:image/svg+xml;base64,\n"+b64+"' title='file.svg'>Download</a>"));

但是,当我点击下载链接时,出现以下错误: 该页面包含以下错误:

error on line 6 at column 16:
Entity 'nbsp' not defined

链接类似于data:image/svg+xml;base64,CgkJCQkJP....CgkJCQk=

我该如何解决这个问题?

最佳答案

问题是   是一个 HTML 实体。

独立的 SVG 文件作为 XML 格式,仅支持五个预定义的 XML 实体:&’。 <>

但是,要表示任何其他 unicode 字符,您可以使用基于 unicode 值的字符引用。不间断空格的代码是 。使用它来替换   并且您的 SVG 文件应该验证。

附注我找到FileFormat.info's character search site对于查找 Unicode 值很有用。

关于javascript - 在本地保存 d3js 图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24835497/

相关文章:

javascript - d3 力定向网络的 json 表示

javascript - 还有比redirect()和render()更好的函数吗? 【 Node 应用】

javascript - 在不使用 Jquery 的情况下单击即可循环浏览 div 内容

javascript - D3 : Tree diagram with images and circles as nodes

javascript - 在 D3.js 中,有没有办法绑定(bind) x 和 y 方向上的滚动事件来平移 svg?

javascript - SVG:更改 dy 属性不会更改父文本元素的边界矩形高度

angular - 如何使用 Angular 2 和 Typescript 实现 D3 套索插件

无重排整数分区的JavaScript递归实现

javascript - 将 React 组件添加到 html 元素

javascript - D3 Force Graph 找到最多节点连接