我已在google的html编辑器中创建了一个弹出式电子邮件对话框,其中包含如下电子邮件输入:
<input type="email" name="email" class="form-control" id="mail" aria-describedby="emailHelp" value="">
在我的.gs文件中,我存储了包含我想要使用的电子邮件地址的单元格的值,如下所示:
function getEmail()
{
var s=SpreadsheetApp.getActive().getSheetByName("Template");
var row=15;
var column=3;
var contactAddress=Utilities.formatString('%s',s.getRange(row, column).getValue());
Logger.log(contactAddress);
}
这很好用,正确捕获电子邮件地址并记录它。我现在需要改变价值&#39;我的电子邮件输入,以便在diolog打开时填充此地址。所以我的HTML文件中有以下内容:
window.onload = function (contactAddress)
{
document.getElementById('mail').value=contactAddress;
}
然而,这导致了[对象事件]&#39;被填充。我觉得我离这儿很近但不能完全接受它!!!!
更新:
所以我把它添加到我的.gs:
function showDialog() {
var html = HtmlService.createHtmlOutputFromFile('emailTemplate')
.setWidth(800)
.setHeight(500);
html.myvar = new getEmail();
html.evaluate().getContent();
SpreadsheetApp.getUi() // Or DocumentApp or FormApp.
.showModalDialog(html, ' ');
}
但是,当我运行脚本时,我收到一条错误,指出Object不允许添加或更改属性。
答案 0 :(得分:0)
编辑:原始答案已删除。
所以这是我对你的问题的答案。测试了它,它的工作原理。
我的HTML页面设置如下,只是为了测试它:
Foo Bar> some_rev_list
RevisionList {theList = [1,4,2,5], revision = 2}
我的.gs文件包含
<!DOCTYPE html>
<html>
<head>
<base target="_top">
<script>
function onSuccess(contact) {
//var contactAddress = google.script.run.getEmail();
document.getElementById('mail').value=contact;
}
google.script.run.withSuccessHandler(onSuccess).getEmail();
</script>
</head>
<body>
<input type="email" name="email" class="form-control" id="mail" aria-describedby="emailHelp" value="">
</body>
</html>
唯一真正的区别是我添加了一个return语句(并为我的测试将行从15更改为1)。
似乎主要问题是你如何在HTML页面上调用该函数。它需要function getEmail()
{
var s=SpreadsheetApp.getActive().getSheetByName("Sheet1");
var row=1;
var column=3;
var contactAddress=Utilities.formatString('%s',s.getRange(row, column).getValue());
Logger.log(contactAddress);
return contactAddress;
}
来电而不是google.script.run.withSuccessHandler()
来电。