随机更改网页而不会两次获得同一页面
changing webpage randomly without getting the same page twice
我正试图用math.random链接35个网页。然而,我不希望它多次访问每个网站。所以我有这个:
function myFunction() {
var pages = ['sang1.html', 'sang2.html', 'sang3.html', 'sang4.html', 'sang5.html', 'sang6.html', 'sang7.html', 'sang8.html', 'sang9.html', 'sang10.html', 'sang11.html', 'sang12.html', 'sang13.html', 'sang14.html', 'sang15.html', 'sang17.html', 'sang18.html', 'sang19.html', 'sang20.html', 'sang21.html'];
var page, visitedPages = JSON.parse(localStorage.getItem("visitedPages"));
if (visitedPages === null) {
visitedPages = [];
}
if (pages.length !== visitedPages.length) {
for (var i = 0; i < pages.length; i++) {
page = pages[Math.floor((Math.random() * pages.length) + 1)];
if (visitedPages.indexOf(page) === -1) { //unvisited yet
localStorage.setItem("visitedPages", JSON.stringify(visitedPages.push(page)));
window.location.href = page;
break;
}
}
} else {window.location.href = score.html //All pages visited at once
}
}
随机页面:
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8"/>
<title>Gæt en sang</title>
<link rel="stylesheet" type="text/css" href="main.css">
<script src="Test.js"></script>
</head>
<body>
<audio class="hidden" controls autoplay>
<source src="horse.ogg" type="audio/ogg">
<source src="Original GhostBusters Theme Song.mp3" type="audio/mpeg">
</audio>
<div id="header">
<h2> Gæt sangen og hejs flagstangen!</h2>
</div>
<div id="left">
<ul> Hvilken sang er dette?
</br>
<button type="button" onclick="myFunction()">
<li> Ghost busters</li>
</button>
</br>
<button type="button" onclick="myFunction()">
<li> Poltergeist</li>
</button>
</br>
<button type="button" onclick="myFunction()">
<li> Something strange<li>
</button>
</br>
<button type="button" onclick="myFunction()">
<li> Who are you gonna call<li>
</button>
</ul>
</div>
</div>
<p id="Test"></p>
</body>
</html>
所以我有一个按钮,你按下它,它就会启动我的功能。这适用于我的所有网站。然而,当我按下按钮时,它总是转到第2页。仅从第1页开始。有什么建议吗?
与其有一个访问过的页面列表,不如有一个所有页面的列表,每次点击都可以从中随机拼接一个。没有最后一页的例子:
var pages = JSON.parse(localStorage.getItem("pages"));
if (pages === null) {
pages = ['sang1.html', 'sang2.html', 'sang3.html', 'sang4.html', 'sang5.html', 'sang6.html', 'sang7.html', 'sang8.html', 'sang9.html', 'sang10.html', 'sang11.html', 'sang12.html', 'sang13.html', 'sang14.html', 'sang15.html', 'sang17.html', 'sang18.html', 'sang19.html', 'sang20.html', 'sang21.html'];
}
function onClick () {
var randomIdx = Math.floor(Math.random() * pages.length),
page = pages[randomIdx];
pages.splice(randomIdx, 0);
localStorage.setItem("pages", JSON.stringify(pages));
window.location.href = page;
}
相关文章:
- 一次点击,两次'单击'事件已启动
- ng在一页中包含两次相同的部分页面
- 变量递增两次而不是一次
- 地图,rails 4.2,javascript,鼠标悬停,只工作一次(或两次).然后在重新加载之后
- JQuery定位:我可以滚动到正确的位置一次,但不能滚动两次
- JS函数只需点击一次即可触发两次
- 新的回顾;I don’在(基本上)同一页上做两次工作
- 为什么两张表格都是一页的
- Gulp任务似乎运行了两次,而不是一次
- 我在一页上有两个简单的javascript幻灯片,但第二个停止了第一个工作
- 在javascript中,如何将相同的对象两次推送到一个数组中,并进行一些修改而不覆盖数组
- 滚动时加载更多 滚动速度时一次工作两次
- 在AngularJS中,一次进行两次调用是一种可接受的方法
- Chrome 确实会加载一次视频文件,但不会加载两次
- 如何修复有时加载两次、一次或根本不加载的 Facebook JSDK
- 如何设置相同的索引两次(一次在每个循环内,另一次在循环外部)
- React和Axios触发两次(一次未定义,一次成功)
- jQuery移动版-移动到下一页/上一页-点击后执行两次操作
- 当手动键入url以移动到下一页时,Chrome加载脚本两次
- 画布覆盖在一页上放大两次后消失