【问题标题】:google sheets launch form from script谷歌表格从脚本启动表单
【发布时间】:2017-12-15 21:49:24
【问题描述】:

我正在尝试按照我从这里借来的代码从我的脚本中的脚本启动一个表单:

Single Google Form for multiple Sheets

我做了如下:

function CreateForm() {
  var form = FormApp.create('New Form');
  var item = form.addCheckboxItem();
  item.setTitle('Is this working now?');
  item.setChoices([
          item.createChoice('yes'),
          item.createChoice('no')
  ]);
  form.addMultipleChoiceItem()
          .setTitle('What should I do about it?')
          .setChoiceValues(['Complain', 'Rejoice', 'Keep Trying'])
          .showOtherOption(true);
  Logger.log('Published URL: ' + form.getPublishedUrl());
  Logger.log('Editor URL: ' + form.getEditUrl());  
  Logger.log('Form ID: ' + form.getId());
}


function launchForm() {
  var formTitle = 'Weekly Report Questionnaire';
  var formID = '1NjNO7JTlt9H2IB6L3QowGitR38o2KrnZxpKB3MWoVXE';
  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(formTitle)
  .setWidth(500) 
  .setHeight(450);
  SpreadsheetApp.getActiveSpreadsheet().show(htmlApp);
}

所以问题是,当我从我的菜单插件中执行 launchForm 时,表单会出现,但它不起作用 - 我无法选中框、输入文本或提交表单,尽管当我将鼠标悬停在某个项目上时光标会发生变化。我只能关闭表格。我希望表单将表单中输入字段的值存储为变量,以便以后在我的电子邮件 html 文本中输出。

【问题讨论】:

    标签: google-apps-script google-sheets google-forms


    【解决方案1】:

    这个解决方法怎么样?在此解决方法中,直接使用表单 URL 并在 iframe 中打开。

    修改后的脚本:

    我只修改了launchForm()如下。

    function launchForm() {
      var formTitle = 'Weekly Report Questionnaire';
      var formID = '1NjNO7JTlt9H2IB6L3QowGitR38o2KrnZxpKB3MWoVXE';
      var form = FormApp.openById(formID);
      var formUrl = form.getPublishedUrl();
      var htmlApp = HtmlService
      .createHtmlOutput('<script>location.href = "' + formUrl + '"</script>')
      .setSandboxMode(HtmlService.SandboxMode.IFRAME)
      .setTitle(formTitle)
      .setWidth(500) 
      .setHeight(450);
      SpreadsheetApp.getActiveSpreadsheet().show(htmlApp);
    }
    

    如果这对你没有用,我很抱歉。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-11-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多