Javascript TypeError:google.visualization未定义

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

我一直试图在我的仪表板上使用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.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);   
}