javascript - 将 Google 图表转换为图像

标签 javascript jquery google-visualization

我正在尝试将 Google 图表转换为类似 this link 的图像但我不明白这一行

var ChartArea = ChartContainer.getElementsByTagName('iframe')[0].contentDocument.getElementById('chartArea');

Google Chart 生成的代码不会创建任何 iFrame 或名为 chartArea 的元素

有人可以帮助我吗?

已更新

按照图表生成的来源,当我把他转换成图像

http://chart.googleapis.com/chart?cht=lc&chs=500x200&chtt=Acessos%20ao%20im%C3%B3vel%20dos%20ultimos%20sete%20dias&chxt=x%2Cy&chxl=0%3A%7C24%2F01%7C25%2F01%7C26%2F01%7C27%2F01%7C28%2F01%7C29%2F01%7C30%2F01%7C1%3A%7C%7C0%7C&chdlp=r&chdl=San%7CSite%7CAtendimento&chco=ff8a00%2C585857%2C5501ff&chd=e%3Af.f.f.f.f.f.f.%2Cf.f.f.f.f.f.f.%2Cf.f.f.f.f.f.f.

最佳答案

这可以通过执行 this page 上的步骤来完成。 。请注意,本文中的代码基于使用 iframe 的旧版 Google Visualization,并且不会像发布的那样工作。但是,您可以使用以下代码(在注释中找到)执行相同的操作:

var svg = $(chartContainer).find('svg').parent().html();
var doc = chartContainer.ownerDocument;
var canvas = doc.createElement('canvas');
canvas.setAttribute('style', 'position: absolute; ' + '');
doc.body.appendChild(canvas);
canvg(canvas, svg);
var imgData = canvas.toDataURL("image/png");
canvas.parentNode.removeChild(canvas);
return imgData; 

注意:我没有创建此代码,它最初是由上述网站的作者 (Riccardo Govoni) 创建的,并由用户 Thomas 在评论部分进行了更新。

关于javascript - 将 Google 图表转换为图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14631821/

相关文章:

javascript - 在Javascript中通过ID获取元素的效率如何?

javascript - IE9 CSS 汉堡菜单问题

javascript - 加载 "..."循环,每 3 秒更改一次文本

javascript - 汇总具有特定类名的所有文本框?

charts - Google Charts - HTML 轴标签和标题

javascript - Material 谷歌折线图中的对数刻度

javascript - 谷歌图表 API - 仪表板 : Hide rows in table

javascript - 在 ng-repeat 中修改 Angular Scope 中的对象

javascript - .JS 格式的 base_url

javascript - GAS 中的 Access-Control-Allow-Origin header