繁体   English   中英

如何从外部 Html 文件获取 Google Apps 脚本中的 ElementById?

[英]How to getElementById in Google Apps Script from external Html file?

我正在尝试将我的 Html 表单插入 Google Apps 脚本以自动发送电子邮件通知,但也在电子邮件正文中包含表单输入。 示例:我的网站上有一个带有“姓名”和“电子邮件”输入的表单。 一位访问者访问我的网站并填写表格。 当访问者点击“提交”按钮时,输入中填写的任何内容都会被存储并发送到 Google Apps 脚本。 然后在向我发送电子邮件的 Google Apps 脚本上运行一个函数。 电子邮件的正文具有“姓名”和“电子邮件”输入数据。 这是梦想,这是现实!:

Code.gs(Google Apps 脚本):

 //EMAIL NOTIFICATION function sendNotification(e) { var ss = SpreadsheetApp.getActiveSpreadsheet(); var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Sheet1"); var range = sheet.getActiveRange().getA1Notation(); var recipients = "myemail@gmail.com"; var message = ''; function createSpreadsheetChangeTrigger() { var ss = SpreadsheetApp.getActive(); ScriptApp.newTrigger('onFormSubmit') .forSpreadsheet(ss) .onFormSubmit() .create(); } var subject = 'Client Lead Notification'; var body = 'You have a new client submission on your Google Sheets spreadsheet' + ss.getUrl(); MailApp.sendEmail(recipients, subject, body); };

Html(外部):

 <input id="inputTest" > <button onclick="storeInputData()">Send</button> <script> function storeInputData() { var inputData = document.getElementById("inputTest").value; document.write("This is " + inputData); } </script>

我的问题是,如何在 Google Apps Script 中以与在 Html (storeInputData) 中相同的方式获取 ElementById?

您需要将 HTML 表单嵌入到WebApp 中

Apps Script Web Apps 具有允许客户端 HTML/Javascript 文件和服务器端 Apps 脚本文件之间通信的方法。

您特别感兴趣的是google.script.run ,它允许您将 HTML 元素值传递给 Apps 脚本函数,示例:

索引.html

...
<input id="inputTest" >

<button onclick="storeInputData()">Send</button>

<script>
    function storeInputData()
    {
        var inputData = document.getElementById("inputTest").value;
        google.script.run.passInputData(inputData);
    }
</script>
...

代码.gs

function doGet() {
  return HtmlService.createHtmlOutputFromFile('Index');
}

function passInputData(value) {
  Logger.log(value);
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM