如何通过Google Apps Script从Google Sheets获取重定向链接并实现表单提交后的自动跳转?
如何通过Google Apps Script从Google Sheets获取重定向链接并实现表单提交后的自动跳转?
嘿,我懂你现在的困扰——Google表单默认的静态跳转设置没法动态拉取Sheet里生成的链接对吧?别发愁,咱们用Google Apps Script就能完美解决这个问题,一步步来:
第一步:配置表单提交触发器
首先得确保你的onFormSubmit函数能在用户提交表单A时自动触发。打开表单A对应的Apps Script编辑器(点击表单右上角三个点 → 脚本编辑器),然后点击左侧栏的「触发器」图标,添加新触发器:
- 选择要运行的函数:
onFormSubmit - 事件源选「表单」
- 事件类型选「当表单提交时」
保存后第一次运行会要求授权,按提示完成权限申请就好。
第二步:编写脚本动态获取链接并设置自动跳转
把你现有的onFormSubmit函数替换成下面的代码,记得把占位信息换成你自己的Sheet和表单ID:
function onFormSubmit() { // 替换成你的Google Sheet ID(从Sheet链接中提取) const targetSheetId = "你的Sheet ID"; // 替换成存放链接的工作表名称 const sheetName = "目标工作表名称"; // 打开指定Sheet,获取最后一行最后一列的链接 const sheet = SpreadsheetApp.openById(targetSheetId).getSheetByName(sheetName); const lastRow = sheet.getLastRow(); const lastColumn = sheet.getLastColumn(); const redirectLink = sheet.getRange(lastRow, lastColumn).getValue(); // 打开表单A,修改确认消息为带自动跳转的HTML内容 const formA = FormApp.openById("你的表单A的ID"); const autoJumpMessage = ` <p>提交成功!正在为您跳转至下一个表单...</p> <meta http-equiv="refresh" content="0; url=${redirectLink}"> <p>如果未自动跳转,请点击<a href="${redirectLink}">这里</a>手动跳转</p> `; formA.setConfirmationMessage(autoJumpMessage); }
小贴士:Sheet ID和表单ID都能从链接里提取——比如Sheet链接是https://docs.google.com/spreadsheets/d/[Sheet ID]/edit,表单链接是https://docs.google.com/forms/d/[表单ID]/edit,把中间那段字符串复制过来就行。
第三步:测试验证
提交一次表单A试试,你会看到确认页面显示提交成功后,立刻自动跳转到Sheet里的目标链接了。如果没跳转,先检查链接是否正确,再确认脚本是否获取了权限;要是宏生成链接的时机在表单提交之后,你可以把宏的代码整合到onFormSubmit函数里,确保先生成链接再执行跳转逻辑。
备注:内容来源于stack exchange,提问作者Isaac
相关产品推荐
相关产品推荐

