【问题标题】:Error: Must call google.charts.load before google.charts.setOnLoadCallback错误:必须在 google.charts.setOnLoadCallback 之前调用 google.charts.load
【发布时间】:2020-05-15 11:49:58
【问题描述】:

我在 HTML 中有以下导入:

    <link rel="stylesheet" href="//maxcdn.bootstrapcdn.com/bootstrap/3.2.0/css/bootstrap.min.css">
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>
    <script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/socket.io/1.7.3/socket.io.js"></script>
    <script type="text/javascript" src="https://www.google.com/jsapi"></script>
    <script type="text/javascript" src="https://www.gstatic.com/charts/loader.js"></script>

还有我的一些js代码:

// load google charts library
google.load("visualization", "1", {packages: ["corechart"]});
// Set a callback to run when the Google Visualization API is loaded.
google.charts.setOnLoadCallback(drawChart);

// for rest, walk, fast_walk data
var data, options, chart;

var i = 0;

/* initialize chart1 - rest, walk, fast_walk data */
function drawChart(data, options) {
    var chart = new google.visualization.LineChart(document.getElementById('data-container'));
    chart.draw(data, options);
    return(chart);
}

但是我收到错误:必须在 google.charts.setOnLoadCallback 之前调用 google.charts.load

我该如何解决这个错误?谢谢!

【问题讨论】:

    标签: javascript jquery google-visualization


    【解决方案1】:

    我通过删除以下代码解决了错误:

    // Set a callback to run when the Google Visualization API is loaded.
    google.charts.setOnLoadCallback(drawChart);
    

    谢谢!

    【讨论】:

    • 您需要使用回调,否则您可能会遇到其他问题。问题是您加载旧版本的 Google 图表,但使用新版本的回调。 JSAPI 不应再使用,详情请参阅release notes...
    • 另外,您正在加载 jsapi 加载器和新的 gstatic 加载器。 Jsapi 将被重定向到新的加载器。所以你加载了两次新的加载器。
    猜你喜欢
    • 2021-10-07
    • 2021-10-09
    • 2021-11-01
    • 1970-01-01
    • 1970-01-01
    • 2014-10-05
    • 2021-03-15
    相关资源
    最近更新 更多