更新!表单ID在web地址中。
有人善意地向我指出(堆栈溢出之外),可以在网站地址中找到标识表单的表单ID。示例:
https://docs.google.com/forms/d/1y9XMjvZi_wlFC2FN64cdafIyGuM_7UOsn1Q61PXv5MQ/edit
其中粗体文本是表单ID。
原件:
事先道歉,因为我不是一个经验丰富的脚本作者,并可能使用不当的行话。
但是-我在谷歌搜索如何在谷歌表单中找到表单ID元素时,发现了对this question的响应,但是答案是旧的,我的问题也是相似的。我已经尝试搜索“检查元素”数据,但仍然无法识别ID属性。我试过搜索密码,因为:
还是没有运气。是否有人对寻找表格ID有最新的建议?作为参考,我使用下面的脚本作为我的起点。这是从一个不同的/旧的形式,但类似的功能,所以我希望利用它。我正在试图找到我的表单的ID (如第6-7行中的那样)。
/**
* @NotOnlyCurrentDoc
* Limit OAuth scope to only current spreadsheet rather than all sheets in drive
*/
function onSubmit(e) {
var form = FormApp.openById('1eccBQ7Bs34Z54keGHeR8HDXmiP1UqxMi9vSDWNv6zgs');
var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('Master');
var data = sheet.getDataRange().getValues();
//var urlCol = 26;
var responses = form.getResponses();
var timestamps = [], urls = [], resultUrls = [];
for (var i = 0; i < responses.length; i++) {
timestamps.push(responses[i].getTimestamp().setMilliseconds(0));
urls.push(responses[i].getEditResponseUrl());
}
for (var j = 1; j < data.length; j++) {
resultUrls.push([data[j][0]?urls[timestamps.indexOf(data[j][0].setMilliseconds(0))]:'']);
}
sheet.getRange(2, urlCol = 27, resultUrls.length).setValues(resultUrls);
return resultUrls;
};发布于 2022-02-16 19:18:37
正如问题正文中提到的那样,表单ID可以在Google中找到,但是hte没有提到这个URL是编辑URL,而不是“视图”URL。
表单所有者还可以通过搜索已分配表单URL的data-redirect-url来使用web浏览器开发工具查找表单ID:
data-redirect-url="https://docs.google.com/forms/d/form_id/edit?usp=redirect_edit_m2"正如OP所提到的,表单ID位于https://docs.google.com/forms/d/和/edit之间。
除了查看表单URL之外,还可以使用Google脚本检索表单ID。更简单的方法是使用类似于以下内容的有界脚本:
function getActiveFormID(){
const id = FormApp.getActiveForm().getId();
console.log(id);
}另一种方法是使用驱动器服务。下面的示例假设只有一个名为"My“的文件:
function getFormId(){
const id = DriveApp.searchFiles(`title contains "My Form"`).next().getId();
console.log(id);
}发布于 2022-02-16 16:44:51
从打开表单(查看模式,而不是编辑)。
点击F12。
在“元素窗口疼痛”中,展开<body>
扩展<script type = "text/javascript" nonce> == $0
你应该看到:
var FB_PUBLIC_LOAD_DATA与您在其窗体上创建的每个元素及其各自的元素ID。
https://stackoverflow.com/questions/62138139
复制相似问题