随机按钮生成器需要修复以避免加载同一页面

时间:2018-07-16 13:19:43

标签: javascript css

我有一个随机的按钮生成器,名为“下一个事件”。该按钮还可以,但是需要改进。有时,此按钮加载用户多次访问的同一页面,我不确定如何编辑它,这是我的代码。 我可以删除当前页面的URL,但是,这是在单独的JS文档中,我希望在单击按钮时再次加载该URL。

使用的代码:

    var sites = [
        '/landingpage/events/uk/boardmasters.html',
        '/landingpage/events/uk/reading.html',
        '/landingpage/events/uk/rizefest.html',
        '/landingpage/events/uk/bestival.html',
        '/landingpage/events/uk/creamfields.html',
        '/landingpage/events/uk/feastival.html',
        '/landingpage/events/uk/fusion.html',
        
    ];

    function randomSite() {
        var i = parseInt(Math.random() * sites.length);
        location.href = sites[i];
    }

2 个答案:

答案 0 :(得分:3)

赞:

function randomSite() {
var i = parseInt(Math.random() * sites.length);
 if(location.href !== sites[i])
     location.href = sites[i];
 else randomSite();
}

更新

基于注释,如果您删除了数组中的URL,我将相应地更改功能。而且您不需要pop()

function randomSite() {
var i = parseInt(Math.random() * sites.length);
 if(location.pathname !== sites[i])
     location.pathname = sites[i];
 else randomSite();
}

答案 1 :(得分:0)

您可以从pages数组中删除当前页面,然后再从其中选择随机项目:

function randomSite() {
    var index = sites.indexOf(window.location.href);
    if (index > -1) {
      sites.splice(index, 1);
    }
    var i = parseInt(Math.random() * sites.length);
    location.href = sites[i];
}