【问题标题】:Using Javascript in Google Apps Script在 Google Apps 脚本中使用 Javascript
【发布时间】:2017-08-28 21:03:15
【问题描述】:

我正在尝试创建一个简单的输入输出 web 应用程序,并且一直很难让任何东西工作。这个想法是从一个 textarea 获取用户输入,添加一些简单的 html 标签,然后将其输出到另一个 textarea。这只是为了帮助一些同事简化他们的操作。

我决定制作一个独立的 Google Apps Script webapp,并使用 HTML 服务来创建我的 UI。计划是在该 HTML 中运行 Javascript。

我已经在 W3schools 的 TryIt 编辑器上测试了以下代码,它运行良好。当我在 StackOverflow 的“运行代码 sn-p”上运行它时,它甚至可以工作。但是当我测试我的 web 应用程序时它不起作用。

帮助?

<!DOCTYPE html>
<html>
  <body>
  <br>
    <textarea rows=12 cols= 50 align=left id="input" placeholder='Insert text here...'></textarea>
    <input type="button" value="Try It" onclick="myFunction()" />
    <textarea rows=12 cols= 50 align=right id="output" placeholder='Copy this text...' readonly></textarea>
  </body>
  <script type="text/JavaScript">
    <!--
    function myFunction() {
      var x = document.getElementById("input").value;
      document.getElementById("output").innerHTML = x;
    }
    -->
  </script>
</html>

【问题讨论】:

  • 您的代码在上面的 sn-p 中运行良好。您需要弄清楚您自己的网站有什么不同,或者链接到您的网站,以便其他人可以帮助找到问题的原因。但问题肯定不在你上面​​的代码中。
  • 所以没有假设。您的 Apps 脚本编辑器中有 2 个“文件”吗? 1个带有上面代码的html文件和带有运行以启动html服务的函数的第二个脚本文件?

标签: javascript html google-apps-script


【解决方案1】:

嗯,解决方案/问题很简单。您的 cols = 50 等属性值需要用引号括起来。像这样:

cols ="50"

你的修改代码:

<!DOCTYPE html>
<html>
  <body>
  <br>
    <textarea rows="12" cols= "50" align="left" id="input" placeholder='Insert text here...'></textarea>
    <input type="button" value="Try It" onclick="myFunction()" />
    <textarea rows="12" cols= "50" align="right" id="output" placeholder='Copy this text...' readonly></textarea>
  </body>
  <script type="text/JavaScript">
    <!--
    function myFunction() {
      var x = document.getElementById("input").value;
      document.getElementById("output").innerHTML = x;
    }
    -->
  </script>
</html>

这有效而前一个无效的原因是 google HTMLservice 评估 HTML 代码的方式。使用您的 HTML 代码,它会按如下方式评估您的文本区域:

<textarea rows="12 cols= 50 align=left id="input" placeholder='Insert text here...'></textarea>

如您所见,将行属性设置为

"12 cols =50 align=left id="

因此,当您运行函数时,它无法找到 id = "input" 的元素并在控制台中引发错误。

希望对您有所帮助。

【讨论】:

  • 谢谢杰克!就是这样。我把头发拔了一个星期,想弄清楚为什么它不起作用。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-06-26
  • 2013-10-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多