簡體   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