这个问题让我想拔光头发。我想把一个 URL 参数传递给 Google Apps Script,其中包含我想要呈现的数据的行 ID(来自电子表格)。我的参数是
我正在测试的URL + 参数是:
story
。然而,无论我尝试什么,都会出现各种错误。最新的错误是:以下是我的 Code.gs 和 Index.html 文件(该项目尚未完成。这只是我到目前为止的进展情况)。TypeError:无法从未定义的变量中读取“parameter”属性。(第2行,文件“Code”,项目“singleStory”)
Code.gs
function doGet(e) {
var i = e.parameter.story;
return HtmlService
.createTemplateFromFile('Index')
.evaluate()
.setSandboxMode(HtmlService.SandboxMode.IFRAME);
function getData() {
return SpreadsheetApp
.openById("1Z582cnr03fkLC7xCca4pcj7QwDtSCS4KGneyFKMgdyo")
.getSheetByName("StoryTopics")
.getDataRange()
.getValues();
}
}
Index.html
<!DOCTYPE html>
<html>
<head>
<base target="_top">
</head>
<body>
<? var data = doGet(); ?>
<div id="container">
<div id="header">
<div id="topicname">
<?= data[i][0] ?>
</div>
<div id="todaysdate">
<p>As of: <?= new Date() ?></p>
</div>
<div id="topictype">
<?= data[i][1] ?>
</div>
<div id="locale">
<?= data[i][2] ?>
</div>
</div>
<div id="contact_container">
<div id="subheader">
</div>
<div id="contact_name">
<?= data[i][3] ?>
</div>
<div id="contact_title">
<?= data[i][4] ?>, <?= data[i][5] ?>
</div>
<div id="contact_email">
<?= data[i][6] ?>
</div>
<div id="contact_phone">
<?= data[i][7] ?>
</div>
</div>
<div id="action_container">
<div id="subheader">
</div>
<table id="action_table">
<tr>
<td>
Date:
</td>
<td>
Type:
</td>
<td>
Description:
</td>
</tr>
</table>
</div>
<div id="story_container">
<div id="story_title">
</div>
<div id="story_content">
</div>
</div>
</div>
</body>
</html>
我正在测试的URL + 参数是:
https://script.google.com/a/macros/--DOMAIN--/s/--SCRIPTID--/exec?story=3
有人能给我一些关于为什么它不工作的想法吗?
e
参数在doGet()
中是什么意思?我不熟悉这种调用AppScript函数的方式,但看起来你的index.html中缺少了这个参数。 - nickpharrisdoGet()
- HTML是由该函数生成的,因此您正在设置执行循环。第二次调用没有事件参数,所以BOOM。) - Mogsdad