我手头有个问题,我自己也解决不了。为了写我的论文,我需要做一个调查。更准确地说:我需要一个给我的对照组,一个给我的治疗组。我正在使用Google Form。
我找不到一种方法来随机化表单本身中的部分,所以我查看了脚本编辑器。我试着找出,当点击链接时,是否有一种方法可以有两个表格,这两个表格将随机分配给参与者。
我想到了类似这样的东西:
function random_2(){
var myrandom=Math.round(Math.random())
var link1="http://www.google1.com"
var link2="http://www.google2.com"
if (myrandom==0)
window.location=link1
else if (myrandom==1)
window.location=link2
}问题是我在编码方面非常缺乏经验,而且到目前为止似乎还没有人想做这样的事情!但必须有一种简单的方法来做到这一点。我将非常感谢您的意见!谢谢。
发布于 2018-04-25 20:06:13
那么,当单击链接时,您希望将URL分配给用户A或B吗?如果是这样的话,你就不能。但是,你可以有一个参与者列表,然后在电子表格的某一列中随机分配一个链接。
像这样的东西会起作用的:
// Generate a random number and return a link
function assignRand() {
var int = Math.round(Math.random() * 2)
if(int == 0) {
return "link1"
} else {
return "link2"
}
}
// Loop through a list of names, emails (whatever) in col A
// Assign a random link to each
function write() {
var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Sheet7")
var data = sheet.getDataRange().getValues();
for(var i=0; i<data.length; i++) {
var link = assignRand()
sheet.getRange((i+1), 2).setValue(link)
}
}一旦他们被分配,你可以将邮件合并到参与者,或者使用另一个应用程序脚本功能在循环中发送单独的调查电子邮件。
发布于 2018-04-25 20:07:33
您可以在gs文件中有一个链接数组,然后在doGet()中随机选择一个数组元素作为链接,并将链接填充到模板中。
在模板中,您可以编写客户端javascript代码来重定向到该链接,或者向用户显示一个按钮来重定向到该链接。
当我有更多的时间时,我会尝试用示例代码片段更新这个答案。
你可以评论特定的问题,如果你有任何问题。
https://stackoverflow.com/questions/50015971
复制相似问题