按钮将不会在Google Apps脚本HTML服务中执行点击功能

时间:2019-06-02 03:58:23

标签: javascript google-apps-script

我花了2天的时间来弄清楚这一点,以便对您的帮助表示感谢。

我正在关注此nice little video tutorial series 我想尝试一些基本操作,然后再做进一步的工作:使用html按钮显示一个使用google apps脚本及其HTML服务组件显示的javascript警报,但就我个人而言,我不明白为什么未触发该警报。

这是我的代码

Index.html

    <!DOCTYPE html>
        <html>
          <head>
              <script>
                 document.getElementById("btnSearch")
                         .addEventListener("click",showAlert);                
              function showAlert() {
                alert("hello world");
              }
              </script>
          </head>
          <body>
            <div>
              <label>Enter code</label>
              <input type="text" id="txtStudentID"/>
              <button id="btnSearch">Search</button>
            </div>
          </body>
        </html>

和我的 code.gs

function doGet() {
  return HtmlService.createHtmlOutputFromFile('Index');
}

我也尝试像google一样显示here:但是按下按钮后,我仍然没有收到要触发的警报:

<input type="button" value="Search"
      onclick="google.script.run
          .withSuccessHandler(showAlert)
          .withUserObject(this)" />

就像脚本标记中以“ document.getElementByID ...”开头的所有内容一样根本无法工作

我想念什么? GAPS不再支持此功能吗?有其他/合适的方法可以使它正常工作吗?

先谢谢您

2 个答案:

答案 0 :(得分:2)

  

任何在脚本标签中以“ document.getElementByID ...”开头的内容都将无法正常工作

是的。因为在评估脚本标签时,没有ID为btnSearch的元素。

解决方案:

  • 将脚本移到DOM的底部。
<div>
  <label>Enter code</label>
  <input type="text" id="txtStudentID" />
  <button id="btnSearch">Search</button>
</div>

<script>
  function showAlert() {
    alert('hello world');
  }
  document.getElementById('btnSearch').addEventListener('click', showAlert);
</script>
  • 或者,如先前的回答所述,请使用load触发器;以便在加载DOM之后评估脚本。
<script>
  function showAlert() {
    alert('hello world');
  }
  function load1() {
    document.getElementById('btnSearch').addEventListener('click', showAlert);
  }
  window.addEventListener('load', load1);
</script>

答案 1 :(得分:0)

尝试将addEvent放入window.onload