Google JSAPI函数无法访问
Google JSAPI function can not be accessed
我正在尝试将这段 Google 图表示例代码移动到
$(document).ready(function () {});
现在它被放置在 Google JSAPI 脚本之后的脚本标签中并且它可以工作,就像这样:
<!--Google JSAPI-->
<script type="text/javascript" src="https://www.google.com/jsapi"></script>
<script type="text/javascript">
google.load("visualization", "1", {packages: ["corechart"]});
google.setOnLoadCallback(drawChart);
function drawChart() {
var data = google.visualization.arrayToDataTable([
['Task', 'Hours per Day'],
['Work', 11],
['Eat', 2],
['Commute', 2],
['Watch TV', 2],
['Sleep', 7]
]);
var options = {
title: question,
backgroundColor: '#CFCFCF'
};
var chart = new google.visualization.PieChart(document.getElementById('SS_piechart'));
chart.draw(data, options);
}
</script>
这是在我的 page_tail 中,就在关闭 body 标签之前。但是一旦我将代码放入
$(document).ready(function () {});
我明白了
Uncaught TypeError: google.visualization.arrayToDataTable is not a function
<!--Google JSAPI-->
<script type="text/javascript" src="https://www.google.com/jsapi"></script>
<script type="text/javascript">
$(document).ready(function () {
google.load("visualization", "1", {packages: ["corechart"]});
google.setOnLoadCallback(drawChart);
function drawChart() {
var data = google.visualization.arrayToDataTable([
['Task', 'Hours per Day'],
['Work', 11],
['Eat', 2],
['Commute', 2],
['Watch TV', 2],
['Sleep', 7]
]);
var options = {
title: question,
backgroundColor: '#CFCFCF'
};
var chart = new google.visualization.PieChart(document.getElementById('SS_piechart'));
chart.draw(data, options);
}
});
</script>
我在 $(document).ready 函数中还有一些其他代码,是否可能存在代码冲突,或者是否有明显的遗漏?
可以移动回调
google.setOnLoadCallback(drawChart);
到
$(document).ready(function () {
drawChart();
});
或 JS 原生
document.addEventListener("DOMContentLoaded", drawChart);
我正在尝试将这段 Google 图表示例代码移动到
$(document).ready(function () {});
现在它被放置在 Google JSAPI 脚本之后的脚本标签中并且它可以工作,就像这样:
<!--Google JSAPI-->
<script type="text/javascript" src="https://www.google.com/jsapi"></script>
<script type="text/javascript">
google.load("visualization", "1", {packages: ["corechart"]});
google.setOnLoadCallback(drawChart);
function drawChart() {
var data = google.visualization.arrayToDataTable([
['Task', 'Hours per Day'],
['Work', 11],
['Eat', 2],
['Commute', 2],
['Watch TV', 2],
['Sleep', 7]
]);
var options = {
title: question,
backgroundColor: '#CFCFCF'
};
var chart = new google.visualization.PieChart(document.getElementById('SS_piechart'));
chart.draw(data, options);
}
</script>
这是在我的 page_tail 中,就在关闭 body 标签之前。但是一旦我将代码放入
$(document).ready(function () {});
我明白了
Uncaught TypeError: google.visualization.arrayToDataTable is not a function
<!--Google JSAPI-->
<script type="text/javascript" src="https://www.google.com/jsapi"></script>
<script type="text/javascript">
$(document).ready(function () {
google.load("visualization", "1", {packages: ["corechart"]});
google.setOnLoadCallback(drawChart);
function drawChart() {
var data = google.visualization.arrayToDataTable([
['Task', 'Hours per Day'],
['Work', 11],
['Eat', 2],
['Commute', 2],
['Watch TV', 2],
['Sleep', 7]
]);
var options = {
title: question,
backgroundColor: '#CFCFCF'
};
var chart = new google.visualization.PieChart(document.getElementById('SS_piechart'));
chart.draw(data, options);
}
});
</script>
我在 $(document).ready 函数中还有一些其他代码,是否可能存在代码冲突,或者是否有明显的遗漏?
可以移动回调
google.setOnLoadCallback(drawChart);
到
$(document).ready(function () {
drawChart();
});
或 JS 原生
document.addEventListener("DOMContentLoaded", drawChart);