Javascript TypeError:google.visualization未定义
我一直试图在我的仪表板上使用GoogleCharts API,并在firebug上看到这些错误 TypeError:google.visualization未定义 以下是我的JS代码:Javascript TypeError:google.visualization未定义,javascript,jquery,charts,google-visualization,Javascript,Jquery,Charts,Google Visualization,我一直试图在我的仪表板上使用GoogleCharts API,并在firebug上看到这些错误 TypeError:google.visualization未定义 以下是我的JS代码: <script type="text/javascript" src="https://www.gstatic.com/charts/loader.js"></script> <script type="text/javascript"> google.chart
<script type="text/javascript" src="https://www.gstatic.com/charts/loader.js"></script>
<script type="text/javascript">
google.charts.setOnLoadCallback(drawChart);
function drawChart() {
var data = google.visualization.arrayToDataTable([
['Title', 'Values'],
['TBK', 8],
['Fluor Corp', 12],
['Fluor Group', 41],
['Bechtel', 39]
]);
var options = {
legend: 'none',
pieSliceText: 'none',
chartArea: {
width: '90%',
height: '90%',
},
colors:['#fa424a','#ac6bec','#fdad2a','#00a8ff','#46c35f','#e84f9a'],
slices: {
0: { color: '#fa424a' },
1: { color: '#ac6bec' },
2: { color: '#fdad2a' },
3: { color: '#00a8ff' }
},
pieHole: 0.8,
tooltip: { trigger: 'none' }
};
var chart = new google.visualization.PieChart(document.getElementById('donutchart'));
chart.draw(data, options);
}
</script>
google.charts.setOnLoadCallback(drawChart);
函数绘图图(){
var data=google.visualization.arrayToDataTable([
['Title','Values'],
[TBK',8],
['Fluor Corp',12],
['Fluor Group',41],
[Bechtel',39]
]);
变量选项={
图例:“无”,
请输入文本:“无”,
图表区:{
宽度:“90%”,
身高:90%,
},
颜色:[“fa424a”、“ac6bec”、“fdad2a”、“00a8ff”、“46c35f”、“e84f9a”],
切片:{
0:{color:'#fa424a'},
1:{color:'#ac6bec'},
2:{颜色:'#fdad2a'},
3:{颜色:'#00a8ff'}
},
pieHole:0.8,
工具提示:{trigger:'none'}
};
var chart=new google.visualization.PieChart(document.getElementById('donutchart');
图表绘制(数据、选项);
}
在使用回调之前需要加载库
google.charts.load('current', {packages:['corechart']}); // <-- load
google.charts.setOnLoadCallback(drawChart);
或者使用load语句返回的承诺
google.charts.load('current', {
packages:['corechart']
}).then(drawChart);
有点晚了,但我也有同样的问题。 我的问题是当我调用函数时,对象google.visualization还没有准备好(我在执行时调用,而不是使用setOnLoadCallback) 因此,我稍后以一个间隔调用该函数,它对我有效:
function drawChart(){
timeout1 = setInterval(
function () {
data = new google.visualization.DataTable();
data.addColumn('string', 'Colum1');
data.addColumn('number', 'Colum2');
data.addColumn('number', 'Colum3');
data.addColumn('number', 'Colum4');
chart = new google.visualization.LineChart(document.getElementById('div_Chart'));
.
.
.
clearInterval(timeout1);
}, 100);
}
我希望这对你有帮助。@Tyler——请你用投票按钮旁边的复选标记将答案标记为已接受,好吗?这将允许我将其他问题标记为此问题的副本。。。
function drawChart(){
timeout1 = setInterval(
function () {
data = new google.visualization.DataTable();
data.addColumn('string', 'Colum1');
data.addColumn('number', 'Colum2');
data.addColumn('number', 'Colum3');
data.addColumn('number', 'Colum4');
chart = new google.visualization.LineChart(document.getElementById('div_Chart'));
.
.
.
clearInterval(timeout1);
}, 100);
}