Copying Chart as base64 image to Clipboard - CanvasJS JavaScript Charts
Copying Chart as base64 image to Clipboard - CanvasJS JavaScript Charts
by canvasjs
HTML
<script src="https://canvasjs.com/assets/script/canvasjs.min.js"></script>
<br/><!-- Just so that JSFiddle's Result label doesn't overlap the Chart -->
<div id="chartContainer" style="height: 360px; width: 100%;"></div>
<button id="copyBtn"> Copy </button>
JavaScript
var chart = new CanvasJS.Chart("chartContainer",
{
data: [
{
type: "column",
dataPoints: [
{ x: 10, y: 71 },
{ x: 20, y: 55 },
{ x: 30, y: 50 },
{ x: 40, y: 65 },
{ x: 50, y: 95 },
{ x: 60, y: 68 },
{ x: 70, y: 28 },
{ x: 80, y: 34 },
{ x: 90, y: 14 }
]
}
]
});
chart.render();
var copyBtn = document.getElementById("copyBtn");
copyBtn.addEventListener('click', function(event) {
var canvasDataUrl = ((document.getElementsByClassName("canvasjs-chart-canvas"))[0]).toDataURL("image/png");
//canvasDataUrl.select();
selectedDataUrl = document.createElement('textarea');
document.body.appendChild(selectedDataUrl);
selectedDataUrl.value = canvasDataUrl;
selectedDataUrl.select();
try {
var successful = document.execCommand('copy');
var msg = successful ? 'successful' : 'unsuccessful';
console.log('Copying Chart to Clipboard was ' + msg);
} catch (err) {
console.log('Oops, unable to copy');
}
document.body.removeChild(selectedDataUrl);
});