google 未在 google 脚本中定义 - 错误
google not defined in google script - Error
我从使用 google.visualization.
创建 table 的 google 脚本中得到错误 "google is not defined"
如何添加对 google 脚本的引用,如果我在脚本中将其添加到 运行,我是否还必须将其添加到我的 google 站点?我会把我的脚本放在下面。
<script type="text/javascript" src="https://www.google.com/jsapi"></script>
function doGet() {
drawTable()
}
function drawTable() {
var data = new google.visualization.DataTable();
data.addColumn('string', 'Name');
data.addColumn('number', 'Salary');
data.addColumn('boolean', 'Full Time');
data.addRows(1);
data.setCell(0, 0, 'John');
data.setCell(0, 1, 10000, ',000');
data.setCell(0, 2, true);
var table = new google.visualization.Table(document.getElementById('table_div'));
table.draw(data, {showRowNumber: true});
google.visualization.events.addListener(table, 'select', function() {
var row = table.getSelection()[0].row;
alert('You selected ' + data.getValue(row, 0));
});
}
首先,您似乎缺少 JavaScript 函数周围的 <script>
标记,这些标记跟在对 google.com/jsapi.
的引用之后
你还需要调用下面的函数来加载合适的"package"。
google.load('visualization', '1.0', {'packages':['table']});
而这个函数要调用drawTable()
google.setOnLoadCallback(drawTable);
假设您将脚本嵌入到 HTML 页面中,完整的页面将类似于:
<html>
<head>
<script type="text/javascript" src="https://www.google.com/jsapi"></script>
<script type="text/javascript">
// Load the Visualization API and the table package.
google.load('visualization', '1.0', {'packages':['table']});
// Set a callback to run when the Google Visualization API is loaded.
google.setOnLoadCallback(drawTable);
function drawTable() {
var data = new google.visualization.DataTable();
data.addColumn('string', 'Name');
data.addColumn('number', 'Salary');
data.addColumn('boolean', 'Full Time');
data.addRows(1);
data.setCell(0, 0, 'John');
data.setCell(0, 1, 10000, ',000');
data.setCell(0, 2, true);
var table = new google.visualization.Table(document.getElementById('table_div'));
table.draw(data, {showRowNumber: true});
google.visualization.events.addListener(table, 'select', function() {
var row = table.getSelection()[0].row;
alert('You selected ' + data.getValue(row, 0));
});
}
</script>
</head>
<body>
<div id="table_div"></div>
</body>
</html>
我的回答基于此处的文档:https://developers.google.com/chart/interactive/docs/gallery/table
Apps 脚本使用 JavaScript 作为服务器端代码。最初,JavaScript 被设计为浏览器(在用户计算机上)中 运行 的一种语言。 JavaScript 在 HTML 文件中,不会 运行 JavaScript 在 Google 的服务器上。
在脚本编辑器中,您可以创建两种类型的文件:
- 脚本
- HTML
doGet()
只能在 .gs
脚本文件中使用。您不能在 HTML JavaScript.
中使用它
您的 Code.gs 文件应该有一些代码如下所示:
Code.gs
function doGet() {
return HtmlService.createTemplateFromFile('index')
.evaluate()
.setSandboxMode(HtmlService.SandboxMode.NATIVE);
};
function include(filename) {
return HtmlService.createHtmlOutputFromFile(filename).getContent();
};
那么你需要一个 HTML 文件。
index.html
<div id="EntireSite">
<div>
body
<?!= include('Chart'); ?>
<br><br><br><br><br><br><br><br><br><br><br>
</div>
<div>
My Footer
</div>
<div style="background: brown">
<br>
<br>
<br>
<br>
</div>
</div>
在此示例中,您需要第二个 HTML 图表文件:
Chart.html
<script type="text/javascript">
google.load("visualization", '1', {packages:['corechart']});
google.setOnLoadCallback(drawChart);
function drawChart() {
var data = google.visualization.arrayToDataTable([
['Element', 'Density', { role: 'style' }],
['Copper', 8.94, '#b87333', ],
['Silver', 10.49, 'silver'],
['Gold', 19.30, 'gold'],
['Platinum', 21.45, 'color: #e5e4e2' ]
]);
var options = {
title: "Density of Precious Metals, in g/cm^3",
bar: {groupWidth: '95%'},
legend: 'none',
};
var chart_div = document.getElementById('chart_div');
var chart = new google.visualization.ColumnChart(chart_div);
chart.draw(data, options);
}
</script>
<div id='chart_div'></div>
我从使用 google.visualization.
创建 table 的 google 脚本中得到错误 "google is not defined"如何添加对 google 脚本的引用,如果我在脚本中将其添加到 运行,我是否还必须将其添加到我的 google 站点?我会把我的脚本放在下面。
<script type="text/javascript" src="https://www.google.com/jsapi"></script>
function doGet() {
drawTable()
}
function drawTable() {
var data = new google.visualization.DataTable();
data.addColumn('string', 'Name');
data.addColumn('number', 'Salary');
data.addColumn('boolean', 'Full Time');
data.addRows(1);
data.setCell(0, 0, 'John');
data.setCell(0, 1, 10000, ',000');
data.setCell(0, 2, true);
var table = new google.visualization.Table(document.getElementById('table_div'));
table.draw(data, {showRowNumber: true});
google.visualization.events.addListener(table, 'select', function() {
var row = table.getSelection()[0].row;
alert('You selected ' + data.getValue(row, 0));
});
}
首先,您似乎缺少 JavaScript 函数周围的 <script>
标记,这些标记跟在对 google.com/jsapi.
你还需要调用下面的函数来加载合适的"package"。
google.load('visualization', '1.0', {'packages':['table']});
而这个函数要调用drawTable()
google.setOnLoadCallback(drawTable);
假设您将脚本嵌入到 HTML 页面中,完整的页面将类似于:
<html>
<head>
<script type="text/javascript" src="https://www.google.com/jsapi"></script>
<script type="text/javascript">
// Load the Visualization API and the table package.
google.load('visualization', '1.0', {'packages':['table']});
// Set a callback to run when the Google Visualization API is loaded.
google.setOnLoadCallback(drawTable);
function drawTable() {
var data = new google.visualization.DataTable();
data.addColumn('string', 'Name');
data.addColumn('number', 'Salary');
data.addColumn('boolean', 'Full Time');
data.addRows(1);
data.setCell(0, 0, 'John');
data.setCell(0, 1, 10000, ',000');
data.setCell(0, 2, true);
var table = new google.visualization.Table(document.getElementById('table_div'));
table.draw(data, {showRowNumber: true});
google.visualization.events.addListener(table, 'select', function() {
var row = table.getSelection()[0].row;
alert('You selected ' + data.getValue(row, 0));
});
}
</script>
</head>
<body>
<div id="table_div"></div>
</body>
</html>
我的回答基于此处的文档:https://developers.google.com/chart/interactive/docs/gallery/table
Apps 脚本使用 JavaScript 作为服务器端代码。最初,JavaScript 被设计为浏览器(在用户计算机上)中 运行 的一种语言。 JavaScript 在 HTML 文件中,不会 运行 JavaScript 在 Google 的服务器上。
在脚本编辑器中,您可以创建两种类型的文件:
- 脚本
- HTML
doGet()
只能在 .gs
脚本文件中使用。您不能在 HTML JavaScript.
您的 Code.gs 文件应该有一些代码如下所示:
Code.gs
function doGet() {
return HtmlService.createTemplateFromFile('index')
.evaluate()
.setSandboxMode(HtmlService.SandboxMode.NATIVE);
};
function include(filename) {
return HtmlService.createHtmlOutputFromFile(filename).getContent();
};
那么你需要一个 HTML 文件。
index.html
<div id="EntireSite">
<div>
body
<?!= include('Chart'); ?>
<br><br><br><br><br><br><br><br><br><br><br>
</div>
<div>
My Footer
</div>
<div style="background: brown">
<br>
<br>
<br>
<br>
</div>
</div>
在此示例中,您需要第二个 HTML 图表文件:
Chart.html
<script type="text/javascript">
google.load("visualization", '1', {packages:['corechart']});
google.setOnLoadCallback(drawChart);
function drawChart() {
var data = google.visualization.arrayToDataTable([
['Element', 'Density', { role: 'style' }],
['Copper', 8.94, '#b87333', ],
['Silver', 10.49, 'silver'],
['Gold', 19.30, 'gold'],
['Platinum', 21.45, 'color: #e5e4e2' ]
]);
var options = {
title: "Density of Precious Metals, in g/cm^3",
bar: {groupWidth: '95%'},
legend: 'none',
};
var chart_div = document.getElementById('chart_div');
var chart = new google.visualization.ColumnChart(chart_div);
chart.draw(data, options);
}
</script>
<div id='chart_div'></div>