Javascript 谷歌分析嵌入API和谷歌图表之间的冲突
当我在同一页面上加载Google Analytics Embed API和Google图表时,似乎存在冲突,更具体地说,当我使用Embed API绘制图表时 更有趣的是,只有当图表的类型不同时才会出现问题,例如嵌入API:TABLE和charts:LINE 嵌入API图表首先加载并按预期工作。 第二次加载图表折线图并返回此错误: 调用draw()方法时使用了错误的数据类型,而不是DataTable或DataView 我感觉嵌入式API图表覆盖了这个函数:Javascript 谷歌分析嵌入API和谷歌图表之间的冲突,javascript,google-analytics,google-visualization,google-analytics-api,Javascript,Google Analytics,Google Visualization,Google Analytics Api,当我在同一页面上加载Google Analytics Embed API和Google图表时,似乎存在冲突,更具体地说,当我使用Embed API绘制图表时 更有趣的是,只有当图表的类型不同时才会出现问题,例如嵌入API:TABLE和charts:LINE 嵌入API图表首先加载并按预期工作。 第二次加载图表折线图并返回此错误: 调用draw()方法时使用了错误的数据类型,而不是DataTable或DataView 我感觉嵌入式API图表覆盖了这个函数: google.charts.load('
google.charts.load('current', {
packages: ['corechart', 'line', 'table']
});
更新
此问题的答案:建议删除对
http://www.google.com/jsapi
,但是Google嵌入API图表停止工作,因为不再定义window.Google.load
,相反,这里有window.google.charts.load
,这是google图表所需要的,但在嵌入API图表时似乎不起作用。我遇到了同样的问题,并修复了脚本加载冲突。
解决方案是只包含较新的图表加载器
然后,在加载google charts api之前,运行额外的代码:
可能是重复的Nope,不能解决我的问题。
//Handles differences in load functions
google.load = google.load || google.charts.load;
google.setOnLoadCallback = google.setOnLoadCallback || google.charts.setOnLoadCallback;
//Loads the google analytics API
(function (w, d, s, g, js, fs) {
//if ($('#googleCache').length > 0) return;
g = w.gapi || (w.gapi = {});
g.analytics = {
q: [],
ready: function (f) {
this.q.push(f);
}
};
js = d.createElement(s);
fs = d.getElementsByTagName(s)[0];
js.src = 'https://apis.google.com/js/platform.js';
js.id = "googleCache";
fs.parentNode.insertBefore(js, fs);
js.onload = function () {
g.load('analytics');
};
}(window, document, 'script'));
//Load the charts you want
google.charts.load('current', { packages: ['corechart', 'table', 'line', 'geochart'] });