Google visualization 解释为文档但使用MIME类型图像/八位字节流传输的资源
使用以下代码保存Google图表。但它是作为一个文件而不是一个图像被下载的,它是这样做的Google visualization 解释为文档但使用MIME类型图像/八位字节流传输的资源,google-visualization,Google Visualization,使用以下代码保存Google图表。但它是作为一个文件而不是一个图像被下载的,它是这样做的 "Resource interpreted as Document but transferred with MIME type image/octet-stream: "data:image/octet-stream;base64,..." 以及守则: function getImgData(chartContainer) { var chartArea = chartContainer.get
"Resource interpreted as Document but transferred with MIME type image/octet-stream: "data:image/octet-stream;base64,..."
以及守则:
function getImgData(chartContainer) {
var chartArea = chartContainer.getElementsByTagName('div')[1];
var svg = chartArea.innerHTML;
var doc = chartContainer.ownerDocument;
var canvas = doc.createElement('canvas');
canvas.setAttribute('width', chartArea.offsetWidth);
canvas.setAttribute('height', chartArea.offsetHeight);
canvas.setAttribute(
'style',
'position: absolute; ' +
'top: ' + (-chartArea.offsetHeight * 2) + 'px;' +
'left: ' + (-chartArea.offsetWidth * 2) + 'px;');
doc.body.appendChild(canvas);
canvg(canvas, svg);
var imgData = canvas.toDataURL("image/png");
canvas.parentNode.removeChild(canvas);
return imgData;
}
function saveAsImg(chartContainer) {
var imgData = getImgData(chartContainer);
window.location = imgData.replace("image/png", "image/octet-stream");
}
您可以使用带有
download
属性的锚定标记来分配文件名
大多数图表都有一个getImageURI
方法
另外,不需要替换(“image/png”、“image/octet-stream”)
请参阅以下工作片段
google.charts.load('current'{
回调:函数(){
var chart=new google.visualization.PieChart(document.getElementById('chart_div');
google.visualization.events.addListener(图表'ready',函数(){
//设置锚定标签
var saveLink=document.getElementById('saveLink');
saveLink.href=chart.getImageURI();
//使下载发生
saveLink.click();
});
chart.draw(google.visualization.arrayToDataTable([
[‘任务’、‘小时’],
[A',19.2],
[B',30.8],
[C',50.0]
]), {
身高:200,
图表区:{
top:24
},
图例:“无”,
pieHole:0.4,
主题:“最大化”,
宽度:200
});
},
软件包:['corechart']
});代码>
保存图表
您要保存什么类型的图表?为什么不使用?另外,你能澄清一下,下载是作为文件而不是图像吗?如果不是在文件中,您打算如何保存图表?它是一个没有扩展名的文件。类似于windows exe文件的东西。