JavaScript随机链接生成并在新选项卡中打开它们

时间:2016-06-10 19:39:08

标签: javascript html redirect random href

在正常情况下,我可以将Amazon Mechanical Turk用户链接到我的调查,只需将调查的URL复制并粘贴到表单中即可。当用户点击此网址时,他们会在标签中发送到此页面。

我想将此修复网址替换为随机将用户重定向到四个网页中的一个的超链接。在帮助下,我能够编码四个不同站点的数组的生成,并能够随机选择并向用户呈现其中一个。我对此代码的问题是,在单击此新(超级)链接时,会在纯文本相同窗口中显示其中一个网站的URL。

我要做的是在点击此网址时,将用户直接发送到标签中的一个随机选择的网站中。简而言之:使其行为与指向URL的直接超链接的行为相同。原因是用户必须保留将其重定向到不同网站的页面,因为他们需要在完成调查后填写代码。

我无法理解为什么还没有发生这种情况,以及我应该如何调整代码以使其成为可能。我非常感谢帮助解决这个问题。

<a href="JavaScript:openSite()">Click to go to a random site</a>
<script>
var links = [
              "google.com",
              "youtube.com",
              "stackoverflow.com",
              "apple.com"]

           var openSite = function() {
              // get a random number between 0 and the number of links
              var randIdx = Math.random() * links.length;
              // round it, so it can be used as array index
              randIdx = parseInt(randIdx, 10);
              // construct the link to be opened
              var link = 'http://' + links[randIdx];

     return link;
    };
</script>

1 个答案:

答案 0 :(得分:2)

尝试以下

<a href="javascript:openSite()">Click to go to a random site</a>
<script>
var links = [
              "google.com",
              "youtube.com",
              "stackoverflow.com",
              "apple.com"]

           var openSite = function() {
              // get a random number between 0 and the number of links
              var randIdx = Math.random() * links.length;
              // round it, so it can be used as array index
              randIdx = parseInt(randIdx, 10);
              // construct the link to be opened
              var link = 'http://' + links[randIdx];

     var win = window.open(link, '_blank');
     win.focus();

    };
</script>