html - 如何从 Google Apps 脚本中的网页获取元素?

标签 html google-apps-script

我正在使用 HTML 和 Google Apps 脚本进行地理测验,我需要从网页中获取答案输入。我尝试获取链接并将元素解析为 XML,但它说我必须关闭某种元标记。据我所知,我没有放入任何元标记。这是脚本:

function doGet() {
    var URL = UrlFetchApp.fetch('https://script.google.com/macros/s/AKfycbzxrT9Tf_W080kpYq26exEC5O3NrI-EUOZssckOVow-9_9yKkBW/exec').getContentText();
    var Parse = XmlService.parse(URL);
    var GetRoot = Parse.getRootElement();
    var ParseBack = HtmlService.parse(GetRoot);
    var ansInDiv = getElementById(URL, 'a1', 'a2', 'a3');
    return(ansInDiv);
}

// send
function send() {
    var EmailAddress = "#########@gmail.com";
    MailApp.sendEmail(EmailAddress, "Geo Quiz Answers", doGet());
}

这是 HTML:

    <!DOCTYPE html>
<html>
    <title>
        Geography Quiz
    </title>
  <base target="_top">
  <font face="Verdana" size="20px">
    Welcome to the Geography Quiz.
  </font>
  <font face="Verdana">
    Begin whenever you are ready. 
  </font>
  <script>
    function RunSend() {
        google.script.run.send();
    }
  </script>
  <div id="answers">
    <br/>
    <br/>
    <p>
      q1
    </p>
    <input type="text" id="a1">
    <p>
      q2
    </p>
    <input type="text" id="a2">
    <p>
      q3
    </p>
    <input type="text" id="a3">
    <br/>
    <br/>
    <button onclick="RunSend()" value="Submit">
        Submit
    </button>
  </div>
</html>

如何让脚本获取元素并通过电子邮件发送?

提前致谢。

最佳答案

你使用的方法对我来说有点奇怪,我会像这样简单地做:

function doGet() {
  return HtmlService.createTemplateFromFile('index').evaluate().setTitle('quizz').setSandboxMode(HtmlService.SandboxMode.IFRAME); 
}

function send(result) {
    var EmailAddress = "-------@gmail.com";
    MailApp.sendEmail(EmailAddress, "Geo Quiz Answers", result);
}

在 html 中:

<!DOCTYPE html>
<html>
    <title>
        Geography Quiz
    </title>
  <base target="_top">
  <font face="Verdana" size="20px">
    Welcome to the Geography Quiz.
  </font>
  <font face="Verdana">
    Begin whenever you are ready. 
  </font>
  <script>
    function RunSend() {
      var a1 = document.getElementById("a1").value
      var a2 = document.getElementById("a2").value
      var a3 = document.getElementById("a3").value
      var result=a1+"-"+a2+"-"+a3  
      google.script.run.send(result);
    }

  </script>
  <div id="answers">
    <br/>
    <br/>
    <p>
      q1
    </p>
    <input type="text" id="a1">
    <p>
      q2
    </p>
    <input type="text" id="a2">
    <p>
      q3
    </p>
    <input type="text" id="a3">
    <br/>
    <br/>
    <button onclick="RunSend()" value="Submit">
        Submit
    </button>
  </div>
</html>

Demo here

关于html - 如何从 Google Apps 脚本中的网页获取元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36378081/

相关文章:

javascript - 将 JSON 对象分配给来自 Google Sheets URL 的变量?

google-apps-script - 直接在 Google 云端硬盘文件夹中创建 Google Doc 文件

javascript - 从 localStorage 获取数据(谷歌脚本)

google-apps-script - 在 google 应用程序脚本 onEdit() 中设置电子表格触发器的通知

javascript - 为什么 HTML 按钮的“属性”窗口中没有“事件”按钮?

html - Word XML - XSLT 到 HTML

html - HTML5音频支付者谁暂停了所有元素的音频?

javascript - 如果 "for"循环返回错误,则设置不同的 var 值

php - 自动检查输入是否填写

javascript - 在不重新加载页面的情况下更改整个 URL