在 Google Apps 脚本中使用 HTML 弹出窗口创建动态数组

问题描述 投票:0回答:1

我正在尝试设置一个脚本,该脚本将为我提供一个带有 6 个复选框的弹出窗口,以便我可以选择要合并到数组中的域,该数组将在另一个脚本中用于迭代。 我设置了脚本和 HTML 页面,但 HTML 似乎没有运行其中的脚本。它给出了弹出窗口,但没有任何结果。 没有显示错误,但也没有记录任何内容。

这是剧本

function showDomainSelectionDialog() {
  var htmlOutput = HtmlService
      .createHtmlOutputFromFile('PageSelectionDialog')
      .setWidth(300)
      .setHeight(150);
  SpreadsheetApp.getUi().showModalDialog(htmlOutput, 'Select Domains');
  Utilities.sleep(5000);
}

function processSelectedDomains(selectedDomains) {
  // Process the selected domains here
  Logger.log(selectedDomains);
}

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

这是 HTML


<!DOCTYPE html>
<html>
  <head>
    <base target="_top">
    <style>
      body {
        font-family: 'Arial', sans-serif;
        margin: 10px;
      }
  <body>
  </style>
    <form>
      <div class="column">
        <label><input type="checkbox" name="domain" value="UK"> UK</label>
        <label><input type="checkbox" name="domain" value="DE"> DE</label>
        <label><input type="checkbox" name="domain" value="FR"> FR</label>
      </div>

      <div class="button-container">
        <input type="button" value="OK" onclick="submitForm()">
      </div>
    </form>

    <script>
      function submitForm() {
        var selectedDomains = [];
        var checkboxes = document.getElementsByName('domain');
        for (var i = 0; i < checkboxes.length; i++) {
          if (checkboxes[i].checked) {
            selectedDomains.push(checkboxes[i].value);
          }
        }
        google.script.run.withSuccessHandler(function(result) {
          console.log(result);
        }).processSelectedDomains(selectedDomains);

        // Close the dialog
        google.script.host.close();
      }
    </script>
  </body>
</html>
html arrays google-apps-script google-sheets popup
1个回答
0
投票

它对我来说是这样工作的:

<!DOCTYPE html>
<html lang="en">
  <head>
    <base target="_top">
    <style>
      body {
        font-family: 'Arial', sans-serif;
        margin: 10px;
      }
  </style>
   </head>
   <body>
    <form>
      <div class="column">
        <label><input type="checkbox" name="domain" value="UK"> UK</label>
        <label><input type="checkbox" name="domain" value="DE"> DE</label>
        <label><input type="checkbox" name="domain" value="FR"> FR</label>
      </div>

      <div class="button-container">
        <input type="button" value="OK" onclick="submitForm()">
      </div>
    </form>

    <script>
      function submitForm() {
        var selectedDomains = [];
        var checkboxes = document.getElementsByName('domain');
        for (var i = 0; i < checkboxes.length; i++) {
          if (checkboxes[i].checked) {
            selectedDomains.push(checkboxes[i].value);
          }
        }
        google.script.run.withSuccessHandler(function(result) {
          console.log(result);
        }).processSelectedDomains(selectedDomains);

        // Close the dialog
        google.script.host.close();
      }
    </script>
  </body>
</html>
最新问题
© www.soinside.com 2019 - 2024. All rights reserved.