我正在使用exupero的saveSvgAsPng库将SVG保存到PNG文件中,但是在将它与Angular-Nvd3组合时遇到了问题。
我收到错误说:
未捕获的TypeError: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");
}
任何关于如何使这项工作正常的建议都将不胜感激。
答案 0 :(得分:1)
我没有使用过saveSvgAsPng库,但我想它会希望你传递一个指向SVG元素的指针,而不是它周围的AngularJS元素。
尝试以下方法:
function saveAsPng() {
var svg = document.getElementById("chart1-svg").getElementsByTagName("svg")[0];
saveSvgAsPng(svg, "diagram.png");
}