Google apps script 加载草稿在加载时有效,但在按钮触发时无效

Google apps script 加载草稿在加载时有效,但在按钮触发时无效,google-apps-script,Google Apps Script,我打算编写一个简单的谷歌应用程序脚本邮件合并应用程序,作为绑定脚本,从用户的邮件草稿开始。我打开一个带有下拉菜单的边栏来选择草稿。当我在加载时获取草稿时,它工作得很好,但是当我用按钮触发获取时,侧边栏将被清除,而不会在控制台中显示任何错误 我将代码精简到最低限度以显示问题: <!DOCTYPE html> <html> <head> <link rel="stylesheet" href="https://ssl.gstatic.com/docs/

我打算编写一个简单的谷歌应用程序脚本邮件合并应用程序,作为绑定脚本,从用户的邮件草稿开始。我打开一个带有下拉菜单的边栏来选择草稿。当我在加载时获取草稿时,它工作得很好,但是当我用按钮触发获取时,侧边栏将被清除,而不会在控制台中显示任何错误

我将代码精简到最低限度以显示问题:

<!DOCTYPE html>
<html>

<head>
  <link rel="stylesheet" href="https://ssl.gstatic.com/docs/script/css/add-ons1.css">
</head>

<body>
  <div class="sidebar">
    <form>
      <div class="block">
      <div class="inline form-group">
        <label for="draft">Choose</label>
        <select id="draft">
          <option disabled selected>One moment please ...</option>
        </select>
      </div>
      </div>
      <div class="block" id="button-bar">
        <button id="reload">reload</button>
      </div>
    </form>
  </div>

  <script src="//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js">
  </script>
  <script>
    $(function() {
      getDrafts();
      $('#reload').click(getDrafts);
    });

    function getDrafts() {
      google.script.run
        .withSuccessHandler(loadDrafts)
        .withFailureHandler(showError)
        .getDraftMessages();
    }

    function loadDrafts(drafts) {
      $('#draft').find('option').remove();
      for (var i = 0; i < drafts.length; i++) {
        $('#draft').append('<option value="' + drafts[i].id + '">' + drafts[i].subject + '</option>');
      }
    }

    function showError(msg, element) {
      var div = $('<div id="error" class="error">' + msg + '</div>');
      $(element).after(div);
    }
  </script>
</body>

</html>

选择
请稍等。。。
重新加载
$(函数(){
getDrafts();
$(“#重新加载”)。单击(获取草稿);
});
函数getDrafts(){
google.script.run
.withSuccessHandler(loadDrafts)
.带故障处理器(淋浴ROR)
.getDraftMessages();
}
函数加载草稿(草稿){
$(“#草稿”).find('option').remove();
对于(变量i=0;i
后端javascript(.gs文件)是:

函数onOpen(){ var ss=SpreadsheetApp.getActive(); 变量菜单=[{ 名称:“邮件合并测试”, functionName:“邮件合并” }, ]; ss.addMenu(“MM实验”,菜单); } mailMerge=函数(){ var html=HtmlService.createHtmlOutputFromFile('MailMergeUI').setTitle('Mail merge'); SpreadsheetApp.getUi().showSidebar(html); } 函数getDraftMessages(){ 试一试{ draftMessages=GmailApp.getDraftMessages(); 草稿=[]; 对于(变量i=0;i 记录器记录正确的草稿,但未执行侧栏中的.withSuccessHandler(loadDrafts);相反,侧边栏冻结


在Chrome开发者工具中,我找不到调试它们的脚本。

查看html,我认为这是因为按钮提交了表单。如果您对客户端js进行此建议编辑,我希望它能解决此问题

$(function() {
  $('#reload').click(getDrafts).click();
});

function getDrafts(e) {
  e.preventDefault();
  google.script.run
    .withSuccessHandler(loadDrafts)
    .withFailureHandler(showError)
    .getDraftMessages();
}

谢谢你的提示!!!移除标签也起到了作用。又学到了什么!
$(function() {
  $('#reload').click(getDrafts).click();
});

function getDrafts(e) {
  e.preventDefault();
  google.script.run
    .withSuccessHandler(loadDrafts)
    .withFailureHandler(showError)
    .getDraftMessages();
}