带有prototype.js的Google Charts

时间:2013-09-19 19:34:25

标签: prototypejs google-visualization

我正在尝试在我的网站上使用谷歌geochart。但问题是当绘制geochart时,我收到错误:“对象#没有方法'每个'”

这里是我正在尝试的代码:

<script type='text/javascript' src='https://www.google.com/jsapi'></script>
<script type='text/javascript'>
    google.load('visualization', '1', {'packages': ['geochart']});
    google.setOnLoadCallback(drawRegionsMap);

    function drawRegionsMap() {
        var data = google.visualization.arrayToDataTable([
            ['Country', 'Popularity'],
            ['Germany', 200],
            ['United States', 300],
            ['Brazil', 400],
            ['Canada', 500],
            ['France', 600],
            ['RU', 700]
        ]);

        var options = {};

        var chart = new google.visualization.GeoChart(document.getElementById('chart_1'));
        chart.draw(data, options);
    };
</script>

<div id="chart_1">Chart should be here</div>

当我从页面中删除prototype.js时,一切正常,但我必须离开它。 有关如何解决此冲突的任何建议吗?

1 个答案:

答案 0 :(得分:5)

查看https://developers.google.com/speed/libraries/devguide#prototype

并尝试加入1.7.1.01.7.0.01.6.1.01.6.0.31.6.0.2

对于1.7.1.0之前的任何版本,您将收到错误Object #<Object> has no method 'each',因此您只需使用最新版本更新原型。

这里需要一些解释,但我真的不知道为什么。根据{{​​3}},dom.js已被完全重写。从1.7到1.7.1的更新花了 18个月(!!)1.7.0 RC3可以追溯到2010年10月,“包括对IE9的支持”(!!) - 所以我猜很多关于“新”HTML5标签的节目,尤其是<svg> - 标签谷歌可视化使用了很多,是它背后的原因是在1.7.1之前没有工作。