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); } }
必要配置步骤
创建安装型触发器:
- 打开脚本编辑器,点击左侧「触发器」图标
- 点击「添加触发器」,选择
onFormSubmit函数 - 选择事件源为「表单」,事件类型为「表单提交」
- 保存并授权必要权限
URL协议要求:跳转URL必须使用HTTPS,HTTP链接会被浏览器安全策略拦截,建议将目标地址改为HTTPS协议
测试注意事项
- 必须用非表单所有者账号提交测试,所有者预览表单的上下文和真实提交场景不同
- 提交后等待1-2秒,确认页面的脚本会自动触发跳转
内容的提问来源于stack exchange,提问作者ryan garza
相关产品推荐
相关产品推荐

