我有一堆不同的html页面,并且需要一个页面才能在每次刷新页面时随机加载。到目前为止,这就是我所拥有的,唯一的问题是我陷入了无限刷新循环中。我怎样才能只在刷新时加载单个页面?
var sites = ['/one.html', '/two.html', '/three.html'];
var randomUrl = sites[Math.floor(Math.random() * sites.length )];
window.location.reload = randomUrl;
谢谢!
答案 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;