Google apps script 使用应用程序脚本向Google表单添加选项时保留图像
每次提交表单时,我都使用google脚本向表单中的复选框项添加新选项。某些现有复选框项目附带了用户在填写表单时看到的图像 我的问题是,每次运行脚本时,它都会从复选框项中删除图像。是否有一种方法可以在向表单添加新选项的同时将图像附加到表单 (部分)我的代码:Google apps script 使用应用程序脚本向Google表单添加选项时保留图像,google-apps-script,google-forms,Google Apps Script,Google Forms,每次提交表单时,我都使用google脚本向表单中的复选框项添加新选项。某些现有复选框项目附带了用户在填写表单时看到的图像 我的问题是,每次运行脚本时,它都会从复选框项中删除图像。是否有一种方法可以在向表单添加新选项的同时将图像附加到表单 (部分)我的代码: //检索表单复选框对象 var item=form.getItems(FormApp.ItemType.CHECKBOX) .过滤器(功能(项目){ return item.getTitle()=“前五名影片”; })[0]。asCheckb
//检索表单复选框对象
var item=form.getItems(FormApp.ItemType.CHECKBOX)
.过滤器(功能(项目){
return item.getTitle()=“前五名影片”;
})[0]。asCheckboxItem();
//在复选框obj中列出两个“选项”,其中包含所有选项
//“existingChoicesTitles”以及所有选项的标题。
var choices=item.getChoices();
var existingChoicesTitles=choices.map(函数(值){
返回值。getValue();
})
//检查列表“值”中的obj是否已存在于数组“选项”中,如果不存在,则添加到
//“选择”
对于(i=0;i
不幸的是,目前没有办法做到这一点。
有一个活动的功能请求,要求能够使用应用程序脚本FormApp
添加此类图像
我建议你去做个记号☆ 在这个问题上,让谷歌知道你想要这个功能,并订阅更新。您可能还希望在注释中添加您的经验和用例
在您的例子中,似乎要将一个项目添加到复选框列表中,应用程序脚本将重新生成所有复选框项目,并且由于
FormApp
不支持这些类型的图像,因此在重新生成图像时不包括它们
对于您的用例来说,除了简单地不以这种方式使用图像(如果要使用应用程序脚本修改图像)之外,似乎没有实际的解决方法
如果您愿意投入一些额外的工作,您可能希望将表单实现为一个简单的应用程序。这样,您将拥有几乎无限的灵活性和更多的功能
Web应用程序示例
这是一个非常简单的Web应用程序示例,其中显示了一个输入框和一个按钮,用于将信息发送到“后端”,在本例中为code.gs
code.gs
函数doGet(){
返回HtmlService.createHtmlOutFromFile(“索引”)
}
函数receiveInfo(formResponse){
Logger.log(formResponse)
}
index.html
发送信息
函数main(){
常量输入=document.getElementById('input')
const info=input.value
google.script.run.receiveInfo(info)
}
const mainButton=document.getElementById(“main”)
mainButton.addEventListener('单击',()=>main())
工具书类
// retrieve form-checkbox object
var item = form.getItems(FormApp.ItemType.CHECKBOX)
.filter(function(item){
return item.getTitle() === 'Top 5 films';
})[0].asCheckboxItem();
//make 2 lists, 'choices' with all choices in the checkbox obj
// 'existingChoicesTitles' with all the titles of the choices.
var choices = item.getChoices();
var existingChoicesTitles = choices.map(function(value){
return value.getValue();
})
//check if obj in list 'values' already exists in array 'choices, if not add to
//'choices'
for (i = 0; i < values.length; i++) {
if (existingChoicesTitles.includes(values[i]) == false){
choices.push(item.createChoice(values[i]));
}
}
//set 'choices' list as new list of choices
item.setChoices(choices);