重新加载时加载随机HTML页面

时间:2019-01-03 18:07:32

标签: javascript jquery html

我有一堆不同的html页面,并且需要一个页面才能在每次刷新页面时随机加载。到目前为止,这就是我所拥有的,唯一的问题是我陷入了无限刷新循环中。我怎样才能只在刷新时加载单个页面?

  var sites = ['/one.html', '/two.html', '/three.html'];
  var randomUrl = sites[Math.floor(Math.random() * sites.length )];
  window.location.reload = randomUrl;

谢谢!

3 个答案:

答案 0 :(得分:0)

如果您只写了一个小的非生产学习页面(因为我认为这不是好习惯)。您可以使用Cookie / localstorage / sessionstorage

if(sessionStorage.getItem('loaded')===null){
   sessionStorage.setItem('loaded', '1');
   **YOUR CODE** 
}
else{
   /* remove if you just loaded a random page so it will work after the next reload */
   sessionStorage.removeItem('loaded')
}

我将为您提供sessionStore,因为如果关闭浏览器,它将重置,但实际上,此时它并不重要。

答案 1 :(得分:0)

您会遇到一个无限循环,因为每次加载新页面时,脚本都会一次又一次地执行,并且因为每个html中都加载了相同的脚本。您可能有一个事件触发器,使其仅在发生后才执行,例如,单击鼠标(以下示例) 如果您希望此随机页面仅打开一次,则可以仅将脚本放在主页中。

document.onclick = reloadpage;

function reloadpage() {
    var sites = ['/one.html', '/two.html', '/three.html'];
    var randomUrl = sites[Math.floor(Math.random() * sites.length )];
    window.open(randomUrl, "_self");
}

答案 2 :(得分:-1)

简单的解决方法是传递参数

window.location.reload = randomUrl + "?reload=0";

并在进行操作前检查reload = 0查询参数

window.location.reload = randomUrl;