首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >google-apps-script随机链接生成器

google-apps-script随机链接生成器
EN

Stack Overflow用户
提问于 2018-04-25 15:01:48
回答 2查看 1.4K关注 0票数 1

我手头有个问题,我自己也解决不了。为了写我的论文,我需要做一个调查。更准确地说:我需要一个给我的对照组,一个给我的治疗组。我正在使用Google Form。

我找不到一种方法来随机化表单本身中的部分,所以我查看了脚本编辑器。我试着找出,当点击链接时,是否有一种方法可以有两个表格,这两个表格将随机分配给参与者。

我想到了类似这样的东西:

代码语言:javascript
复制
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

}

问题是我在编码方面非常缺乏经验,而且到目前为止似乎还没有人想做这样的事情!但必须有一种简单的方法来做到这一点。我将非常感谢您的意见!谢谢。

EN

回答 2

Stack Overflow用户

发布于 2018-04-25 20:06:13

那么,当单击链接时,您希望将URL分配给用户A或B吗?如果是这样的话,你就不能。但是,你可以有一个参与者列表,然后在电子表格的某一列中随机分配一个链接。

像这样的东西会起作用的:

代码语言:javascript
复制
// 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)
  }
}

一旦他们被分配,你可以将邮件合并到参与者,或者使用另一个应用程序脚本功能在循环中发送单独的调查电子邮件。

票数 0
EN

Stack Overflow用户

发布于 2018-04-25 20:07:33

您可以在gs文件中有一个链接数组,然后在doGet()中随机选择一个数组元素作为链接,并将链接填充到模板中。

在模板中,您可以编写客户端javascript代码来重定向到该链接,或者向用户显示一个按钮来重定向到该链接。

当我有更多的时间时,我会尝试用示例代码片段更新这个答案。

你可以评论特定的问题,如果你有任何问题。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50015971

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档