【问题标题】:How to delay confirmation page in Google Forms until script has run?如何在脚本运行之前延迟 Google 表单中的确认页面?
【发布时间】:2017-06-05 20:33:39
【问题描述】:

我正在修改 Google 表单以处理来自我的团队的信息。我希望他们提供有关新项目和现有项目的信息。如果选择了现有项目,它会显示一个 URL 以将用户带到另一个表单。如果用户选择了“现有项目”,我希望确认页面只显示下一个表单的链接。

我知道此站点上的先前答案以及 Google 帮助声明您无法动态更改确认通知。但是,我编写了一个函数,它接受用户响应并使用 GAS .setConfirmationMessage() 更改确认响应。但是,这仅在使用 onSubmit 触发器时生效,并且确认页面现在加载太快,无法更改当前响应中的信息。

    function pageDisplay(){
       var form=FormApp.getActiveForm();
       var formResponses=form.getResponses();
       var lastFormResponse=formResponses.pop();
       var itemResponses=lastFormResponse.getItemResponses();
       var itemResponse=[]; //initialize array

     for (var i=0; i<itemResponses.length; i++){
         itemResponse[i]=itemResponses[i].getResponse();
        }

     switch (itemResponse[0].toString()){
         case "Existing Project":
            form.setConfirmationMessage("Thank you now please visit URL");
            form.setConfirmationMessage(url);
          break;

        case "New Project":
           form.setConfirmationMessage("Thank you for your new information").setShowLinkToRespondAgain(true);
          break;

}}

问题:在脚本运行之前,如何才能减慢确认页面的加载速度?这可能吗?

我已经习惯了 GAS,但没有 HTML 或网页 JS 方面的经验,所以如果涉及这些,请详细说明。感谢您的帮助!

【问题讨论】:

  • 我认为这是不可能的。提交表格和显示确认消息的速度取决于互联网速度和用户计算机。我不敢相信你能够做一些事情来影响它。

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


【解决方案1】:

Google 表单不包含用于更改已发布表单行为(例如延迟显示确认页面)的内置功能。

另一种方法是使用 UrlFetchApp 来控制对 Google 表单应用的 POST 请求,但这可能会不必要地使您的解决方案过于复杂,以部署为“生产”。如果您仍然想采用这种方式,您应该使用 HTMLService 来显示一个带有自定义表单提交操作的 html 表单,该操作将模拟已发布的 Google 表单的表单操作。

【讨论】:

    猜你喜欢
    • 2017-12-27
    • 1970-01-01
    • 2017-01-13
    • 1970-01-01
    • 1970-01-01
    • 2017-08-14
    • 2018-08-16
    • 2021-05-26
    相关资源
    最近更新 更多