saveSvgAsPng - getBBox 不是函数

saveSvgAsPng - getBBox is not a function

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

我收到一条错误消息:

Uncaught TypeError: el.getBBox is not a function

在我看来,该函数似乎无法 "grab" 我的 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");
  }

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

我没有使用过那个 saveSvgAsPng 库,但我想它希望您向它传递一个指向 SVG 元素的指针,而不是它周围的 AngularJS 元素。

尝试以下操作:

function saveAsPng() {
   var svg = document.getElementById("chart1-svg").getElementsByTagName("svg")[0];
   saveSvgAsPng(svg, "diagram.png");
}