参考: 预览地址 http://jsfiddle.net/bv16o50f/1/
html
<div class="visualization"> <svg xmlns="http://www.w3.org/2000/svg" class="chart-container" width="900" height="440"> <g transform="translate(90, 10)"> <g transform="translate(0, 302)"> <path fill="none" stroke="#777" d="M 0 6 V 0 H 779 V 6" /> </g> <g> <line stroke="#2e9ccc" stroke-width="50" transform="translate(253)" x1="0" y1="302" x2="0" y2="14" /> <line stroke="#2e9ccc" stroke-width="100" transform="translate(253)" x1="150" y1="302" x2="150" y2="119" /> </g> </g> </svg> </div>
js
html2canvas([$('div.visualization')[0]], {
useCORS: true
}).then(function (canvas) {
if (navigator.msSaveBlob) {
console.log('this is IE');
var URL=window.URL;
var BlobBuilder = window.MSBlobBuilder;
navigator.saveBlob=navigator.msSaveBlob;
var imgBlob = canvas.msToBlob();
if (BlobBuilder && navigator.saveBlob) {
var showSave = function (data, name, mimetype) {
var builder = new BlobBuilder();
builder.append(data);
var blob = builder.getBlob(mimetype||"application/octet-stream");
if (!name)
name = "Download.bin";
navigator.saveBlob(blob, name);
};
showSave(imgBlob, 'barchart.png',"image/png");
}
} else {
if ($('#export-image-container').length == 0)
$('body').append('<a id="export-image-container" download="barchart.jpg">')
img = canvas.toDataURL("image/jpeg")
img = img.replace('data:image/jpeg;base64,', '')
finalImageSrc = 'data:image/jpeg;base64,' + img
$('#export-image-container').attr('href', finalImageSrc)
$('#export-image-container')[0].click()
$('#export-image-container').remove()
}
});
css
div.visualization { width:1009px; height:440px; overflow:visible; background-color: #fff; color:transparent; }