2017-04-12 104 views
0

當我運行此:html2canvas不斂SVG

html2canvas(document.body, { 
allowTaint: true, 
    onrendered: function(canvas) { 
    document.body.appendChild(canvas); 
    } 
}); 

我有我的整個頁面抓起成畫布,但SVG不是。一直在環顧四周,但我找不到有用的解決方法,任何想法?

+0

它不渲染leafletmap這樣一個http://leafletjs.com/examples/choropleth/example.html也不D3思維導圖 –

+0

更新[的jsfiddle](https://jsfiddle.net/2h2ssh7k/14/)。你可以看一下嗎? – gaetanoM

+0

@gaetanoM好吧,那真是太好了,難道那是setTimeout的問題嗎?因爲當我在我的頁面上執行它時,它會捕獲所有內容,但是在您的jFiddle中運行時,svg會運行 –

回答

1

我解決它告訴leaflet to provide tiles as canvas,而不是作爲一個svg

jQuery("#print").on("click", function() { 
    myCapture(); 
}); 

function myCapture() { 
    html2canvas(document.body, { 
    allowTaint: true, 
    useCORS: true, 
    onrendered: function(canvas) { 
     document.body.appendChild(canvas); 
    } 
    }); 
} 

    var map = L.map('map', { 
     renderer: L.canvas() 
});