名为 Google 的 html 服务上的提交按钮无法正常工作

Submit button on html service called Google form not working

google sheet 中的此函数确实会弹出 window 表单,但提交按钮已失效。缺少什么可以使这个 window 成为现实?

function launchForm() {
  var formID = '1YznrnFFIfXLpsZfsIZ4xjhlwmi8eLv_nTuOjDKGhwIc';
  var form = FormApp.openById(formID);
  var formUrl = form.getPublishedUrl();

  var response = UrlFetchApp.fetch(formUrl);
  var formHtml = response.getContentText();

  var htmlApp = HtmlService
      .createHtmlOutput(formHtml)
      .setSandboxMode(HtmlService.SandboxMode.IFRAME)
      .setTitle('Ta Daaa!')
      .setWidth(500)
      .setHeight(650);

  SpreadsheetApp.getUi().showModalDialog(htmlApp, 'Query window');
}

该函数挂钩到一个菜单项,单击该项目确实会在 sheet 上弹出表单,运行 来自附加到 [=24 的脚本项目的脚本也是如此=].

menuEntries.push({name: "Launch Query form", functionName: "launchForm"});

这个特殊的表格很简单,只有三个字段。所以我可以考虑使用 HTML 服务来构建一个 HTML 并且我看到很多关于它也不起作用的问题,所以我可能会解决这个问题。但是,我还有其他更复杂的表格,我更愿意从 spreadsheet 中简单地调用常规 Google 表格。

将Google表单的URL嵌入到对话框的HTML中:

Code.gs

function launchForm() {

  var htmlApp = HtmlService
      .createHtmlOutputFromFile('InputForm')
      .setSandboxMode(HtmlService.SandboxMode.IFRAME)
      .setTitle('Ta Daaa!')
      .setWidth(500)
      .setHeight(650);

  SpreadsheetApp.getUi().showModalDialog(htmlApp, 'Query window');
}

InputForm.html

<!DOCTYPE html>
<html>
  <head>
    <base target="_top">
  </head>
  <body>
    <iframe src="https://docs.google.com/forms/d/e/FormIDHere/viewform?embedded=true" width="760" height="500" frameborder="0" marginheight="0" marginwidth="0">Loading...</iframe>
  </body>
</html>

在 "New" Google 表单中,您可以获得 IFRAME 标签以嵌入 Google 表单,方法是单击右上角的 "Send" 按钮,然后单击第三个选项卡“<>”