【问题标题】:How do I fetch an element from a webpage in Google Apps Script?如何从 Google Apps 脚本中的网页获取元素?
【发布时间】:2016-04-02 19:57:36
【问题描述】:

我正在使用 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>

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

提前致谢。

【问题讨论】:

    标签: html google-apps-script


    【解决方案1】:

    您使用的方法对我来说似乎有点奇怪,我会这样做:

    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

    【讨论】:

    • 谢谢,但它说“getElementById 未定义”。我认为 声明有问题。
    • 你试过de memo吗?问题是演示还是您的实现?我怀疑这样的基本设置可能会出错。
    • 不,我修好了。我只需要制作一个新版本的应用程序。
    猜你喜欢
    • 2020-11-26
    • 1970-01-01
    • 1970-01-01
    • 2020-06-11
    • 1970-01-01
    • 2017-10-20
    • 1970-01-01
    • 2020-03-16
    • 1970-01-01
    相关资源
    最近更新 更多