0

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");
  }

これを適切に機能させる方法についての提案をいただければ幸いです。

4

1 に答える 1

1

私はその saveSvgAsPng ライブラリを使用していませんが、それを囲む AngularJS 要素ではなく、SVG 要素へのポインタを渡すことを期待していると思います。

次のことを試してください。

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