[英]Populate email input on HTML form from email value within google sheets cell
我已經在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);
}
這可以正常工作,並且可以正確捕獲電子郵件地址並將其記錄下來。 現在,我需要更改電子郵件輸入的“值”,以便在打開二元日志時使用此地址填充該電子郵件。 因此,我的HTML文件中包含以下內容:
window.onload = function (contactAddress)
{
document.getElementById('mail').value=contactAddress;
}
但是,這將導致填充“ [對象事件]”。 我覺得我在這里很近,但不能完全擺脫!
更新:
所以我將其添加到我的.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, ' ');
}
但是,當我運行腳本時,出現錯誤消息,指出對象不允許添加或更改屬性。
編輯:原始答案已刪除。
所以這是我對您問題的回答。 測試了一下,就可以了。
我的HTML頁面設置如下:
<!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>
我的.gs文件包含
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;
}
唯一真正的區別是,我添加了一個return語句(並將測試的行從15更改為1)。
似乎主要問題是您如何在HTML頁面上調用該函數。 它需要google.script.run.withSuccessHandler()
調用,而不是window.onload = function()
調用。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.