0

我正在使用 exupero 的 saveSvgAsPng 库将 SVG 保存为 PNG 文件,但是在将它与 Angular-Nvd3 结合使用时遇到了问题。

我收到一条错误消息:

未捕获的类型错误:el.getBBox 不是函数

在我看来,该功能无法从我的 nvd3 元素中“抓取”SVG 元素。

我的代码如下所示:

HTML:

  <button onclick = "saveAsPng();" type="button" name="button"></button>

            <div id = "chart1-canvas">
              <nvd3 id = "chart1-svg" options="options1" data="data1"></nvd3>
            </div>

Javascript:

  function saveAsPng(){
    saveSvgAsPng(document.getElementById("chart1-svg"), "diagram.png");
  }

任何有关如何使这项工作正常工作的建议将不胜感激。

4

1 回答 1

1

我没有使用过 saveSvgAsPng 库,但我想它希望您将指针传递给 SVG 元素,而不是围绕它的 AngularJS 元素。

尝试以下操作:

function saveAsPng() {
   var svg = document.getElementById("chart1-svg").getElementsByTagName("svg")[0];
   saveSvgAsPng(svg, "diagram.png");
}    
于 2015-08-21T17:33:38.313 回答