<img/>的xmlns属性太多

时间:2015-07-11 18:03:55

标签: javascript d3.js svg save xml-namespaces

我试图将d3图表保存为svg文件并且对图像有一些问题。我的图表还包含一些图标,这些图标也是.svg文件,但是在保存这些图标后无法找到。我收到错误:&#34;无法加载资源:net :: ERR_FILE_NOT_FOUND&#34;

我检查了html文件并看到该图像有两个xmlns属性:

<image xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="images/search.svg" x="-134" y="19" width="2.5em" height="2.5em"/>

但它应该是这样的

<image href="images/search.svg" x="-134" y="19" width="2.5em" height="2.5em"></image>

有人可以解释我如何解决这个问题吗?我很感激任何帮助

以下是我为d3tree设置图片的代码部分

 nodeEnter.append("image")
        .attr("xlink:href", function(d) {
              if (d.nodetype === "contact") {
                switch(d.categorie) {
                    case "0001": return "image/search.svg";
                    //....

                }
            }
        })

这是功能

    function saveAsSVG() {
var canvas = d3.select("svg").html();
var svg = '<?xml.... "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg xmlns="http://www.w3.org/2000/svg"><style type="text/css"><![CDATA[' +this.styles + ']]></style>' + canvas + '</svg>';

var imgsrc = "data:application/svg+xml;base64," +btoa(unescape(encodeURIComponent(svg)));
var a = document.createElement("a");
document.body.appendChild(a);
a.download = "export" + ".svg";
a.href = imgsrc;
a.target = "_self";
a.click();

}

抱歉格式化问题。这就是我所拥有的一切。

0 个答案:

没有答案