2016-04-02 2 views
1

Ich mache ein Geographie-Quiz mit HTML und Google Apps Script, und ich muss die Antworteingabe von der Webseite nehmen. Ich habe versucht, den Link zu holen und das Element zu XML zu analysieren, aber es hieß, dass ich eine Art Meta-Tag schließen musste. Soweit ich weiß, habe ich keine Meta-Tags eingefügt. Hier ist das Skript:Wie hole ich ein Element von einer Webseite in Google Apps Script?

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()); 
} 

Und hier ist der 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> 

Wie bekomme ich das Skript, das Element zu holen und es in einer E-Mail schicken?

Vielen Dank im Voraus.

Antwort

0

der Ansatz, den Sie verwenden, scheint ein bisschen zu mir fremd, ich würde es tun einfach so:

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

function send(result) { 
    var EmailAddress = "[email protected]"; 
    MailApp.sendEmail(EmailAddress, "Geo Quiz Answers", result); 
} 

und in 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

+0

Danke, aber es sagt, "getElementById ist nicht definiert". Ich denke, dass etwas mit der Deklaration nicht stimmt. – YonaTheYak

+0

hast du de memo probiert? ist das Problem mit der Demo oder mit Ihrer Implementierung? Ich bezweifle, dass bei einer solchen Grundkonfiguration ein Fehler auftreten könnte. –

+0

Nein, ich habe es behoben. Ich musste nur eine neue Version der Anwendung erstellen. – YonaTheYak

Verwandte Themen