【问题标题】:Redirect after submitting Google Form提交 Google 表单后重定向
【发布时间】:2018-07-04 20:27:03
【问题描述】:

我有一个自定义的 Google 表单和一个自己的网站。我需要的是,在提交 Google 表单后,允许用户访问下载文件。 这意味着您只有在填写完表格后才能访问文件。

我一直在寻找一种在不显示 URL 的情况下重定向到自定义 URL 的方法(因此用户无法复制粘贴它并多次下载文件)但提交后无法重定向(即使表单已嵌入)。

我什至试图让表单打开一个带有文件 url 或其他内容的弹出窗口,但一切似乎都做不到。

有没有办法做到这一点?

【问题讨论】:

  • 不,提交 Google 表单后无法重定向到另一个 URL。您需要使用带有 HTML 表单的 Web 应用程序。您可以将 Apps Script Web App 放入 html iframe 标记中,但这样做可能会出现跨域错误。或者,您可以只将 HTML 表单放入您的站点,无需 Web App,然后向独立的 Apps 脚本文件发出 POST 请求。 Apps 脚本文件需要一个 doPost(e) 函数。在 POST 有效负载中发送答案。我假设您可以将 JavaScript 放入您的网站,它可以做任何您想做的事情。
  • 关于通用计算硬件和软件的问题对于 Stack Overflow 来说是无关紧要的,除非它们直接涉及主要用于编程的工具。您可以通过Web Applications 获得帮助。
  • 在响应中发送一封电子邮件,其中包含指向具有唯一 URL 参数的 Web 应用程序的临时一次性使用链接。生成 URL 时,将该参数缓存到所需的时间限制(1 秒到 6 小时),并在提供文件时将其删除。
  • @tehhowch 这个解决方案很好地解决了我的需求,我会搜索如何做到这一点。

标签: google-apps-script google-forms


【解决方案1】:
<!-- Normal form embed code, add an ID -->
<iframe id="gform" src="https://docs.google.com/forms/d/e/1FAIpQLSeaiWCc598b3beFhYraf4nNsLgG3bXby_Qne93rHy_Mb_8UIA/viewform?embedded=true" width="640" height="487" frameborder="0" marginheight="0" marginwidth="0" style="margin:0 auto; max-width:100%;">Loading…</iframe>

<script type="text/javascript">
var load = 0;

document.getElementById('gform').onload = function(){
    /*Execute on every reload on iFrame*/
    load++;
    if(load > 1){
        /*Second reload is a submit*/
        document.location = "https://www.google.com/search?q=thanks&tbm=isch";
    }
}
</script>

【讨论】:

  • cmets 中的描述! :P
  • 这不适用于多页谷歌表单,尤其是那些可以让你在中间提交的表单。
  • 我试过这段代码,但它并不总是有效..不知道为什么?在 4 次尝试中它只工作了一次。..
猜你喜欢
  • 1970-01-01
  • 2013-04-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多