google-apps-script - 如果用户在考试中断开连接,如何自动提交谷歌表单?
问题描述
如果用户在考试中间断开连接,我对如何提交 Google 表单进行了大量研究。它不是基于我想要的时间。
Google 表单不保存答案。最近谷歌在 Google Workspace for Education 上推出了它,如果用户断开连接,它可以保存答案。但我正在寻找普通的 Gmail 用户。
我想做的是,我将启用“提交后编辑”选项。因此,当用户因电力或互联网问题退出表单页面时,表单将自动提交,然后她/他将收到一封包含编辑链接的电子邮件。他们之前的回复将被保存。现在考试结束后,我将停止回答。我怎样才能实现它?
解决方案
您可以与 Google 表单交互的唯一方法是通过submit
.
所以基本上你不能保存在disconnect
.
你可能想使用Edit after submit
你提到的。
它可供普通 Gmail 用户使用。你能具体说一下你的问题是什么吗?
如果您需要在用户断开连接时自动提交。然后你需要一个网络应用程序并提交beforeunload
Google Apps 脚本
function handleSubmit(formData) {
const id = 'formId';
const form = FormApp.openById(id);
const items = form.getItems();
const response = form.createResponse();
Object.keys(formData).forEach(function(key) {
const i = items[key].asTextItem();
const r = i.createResponse(formData[key]);
response.withItemResponse(r);
});
response.submit();
// return response.getEditResponseUrl();
}
网络应用
window.onbeforeunload = function(e) {
e.preventDefault();
const formData = new FormData(form);
google.script.run.handleSubmit(formData);
return 'Form submitted';
}
推荐阅读
- javascript - 通过 AJAX 向 MVC 控制器发送字符串
- java - 是否可以不通过文件名而是通过其内容(字符串值)来解析 xml?
- vi - 前面板LabVIEW中的井字游戏线交叉
- php - php - 一个接一个地加载两个页面
- azure - Azure Log Analytics 解析 json
- mysql - 在 MySQL 中按引用插入
- reactjs - 导入 NPM 包仅用于 Next.js 应用中的服务器端渲染(SSR)
- python - 需要用作整数时输入返回字符串
- amazon-s3 - 我的 lambda 从 S3 存储桶中读取 JSON 文件,并将数据摄取到 Redshift 表中。但我遇到了“频谱扫描错误”
- flutter - 颤振:滚动控制器 AnimateTo 功能并不总是到达所需的位置