客户端到服务器通信

时间:2015-05-20 18:39:22

标签: google-apps-script

我最近一直在研究像this这样的东西,我想知道你是否可以用文本做同样的事情来返回html编码?

例如;

的index.html;

<!DOCTYPE html>
<html lang="en-US">
  <head>
    <script>
      function myFunction(html)
      {
        var text = document.getElementsByName("name_1")[0].value;
        document.getElementById("html").innerHTML = html;
      }
    </script>
  </head>
  <body>
    <form>
      <input type="text" name="name_1" placeholder="Send url to get text" />
      <input type="button" value="Send url to get text" onclick="google.script.run.withSuccessHandler(myFunction).sendTextToServer()" />
    </form>
    <div id="html"></div>
  </body>
</html>

Code.gs:

function sendTextToServer() {
  // I don't know how to get the text from index.html
  var text;
  if(text != "") {
    text = UrlFetchApp.fetch(text);
  } else {
    text = 'Unable to fetch html.';
  }

  return text;
}

1 个答案:

答案 0 :(得分:0)

在该文档中,this关键字用于函数的参数部分:

this.parentNode

这将是:

onclick="google.script.run.withSuccessHandler(myFunction).sendTextToServer(this.parentNode)"

在你的情况下。该按钮是表单的子项,因此表单是按钮的父项。按钮中的代码获取按钮的父级,即表单。在你的代码中,你把它留了出来。没关系,如果你想使用不同的方法,你只需要以其他方式获取数据。

您可以先给输入标记一个id:

<input id='idInputTxt' type="text" name="name_1" placeholder="Send url to get text" />

然后按id:

获取元素
function sendTextToServer() {
  //get the text from index.html
  var text = document.getElementById("idInputTxt").value;

  if(text != "") {
    text = UrlFetchApp.fetch(text);
  } else {
    text = 'Unable to fetch html.';
  }

  return text;
}

您还可以获取整个表单对象:

为表单元素指定一个id:

<form id='idForm1'>

获取表格:

function sendTextToServer() {
  //get the form data from index.html
  var objForm = document.getElementById("idForm1");

如果您获得整个表单,Apps脚本会将其转换为比表单对象更小的对象。然后你可以遍历这些值。