You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Google表单提交后按最后一题答案自动重定向功能故障求助

解决Google表单提交后根据最后一题答案跳转指定网站失效问题

你的代码失效核心原因是showConfirmationDialog仅对表单编辑者/所有者生效,提交表单的普通用户看不到这个对话框,自然无法触发跳转。另外原代码获取答案的方式存在上下文错误,以下是修正方案:

关键问题分析

  • showConfirmationDialog是表单编辑界面的弹窗API,和提交者看到的确认页面完全无关
  • 原代码用getSelectedItems()获取的是编辑模式下的选项,而非提交者的真实答案

修正后的代码

function onFormSubmit(e) {
  // 从触发器事件中获取提交者的所有答案
  var allResponses = e.response.getItemResponses();
  // 提取最后一题的答案
  var lastAnswer = allResponses[allResponses.length - 1].getResponse();
  
  var form = FormApp.getActiveForm();
  // 保存表单默认确认消息,用于非"Yes"场景恢复
  var defaultConfirmMsg = form.getConfirmationMessage() || "感谢提交";

  if (lastAnswer === 'Yes') {
    // 设置带自动跳转脚本的确认消息
    var redirectContent = '<script>window.top.location.href="https://www.example.com";</script>';
    form.setConfirmationMessage(redirectContent);
  } else {
    // 恢复默认确认消息
    form.setConfirmationMessage(defaultConfirmMsg);
  }
}

必要配置步骤

  • 创建安装型触发器:

    1. 打开脚本编辑器,点击左侧「触发器」图标
    2. 点击「添加触发器」,选择onFormSubmit函数
    3. 选择事件源为「表单」,事件类型为「表单提交」
    4. 保存并授权必要权限
  • URL协议要求:跳转URL必须使用HTTPS,HTTP链接会被浏览器安全策略拦截,建议将目标地址改为HTTPS协议

测试注意事项

  • 必须用非表单所有者账号提交测试,所有者预览表单的上下文和真实提交场景不同
  • 提交后等待1-2秒,确认页面的脚本会自动触发跳转

内容的提问来源于stack exchange,提问作者ryan garza

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.02 03:35:15