gpt4 book ai didi

javascript - 随机更改网页,而不会两次获得相同的页面

转载 作者:行者123 更新时间:2023-12-03 11:36:45 25 4
gpt4 key购买 nike

我正在尝试将 35 个网页与 math.random 链接起来。但是我不希望它多次访问每个站点。所以我有这个:

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;
}

关于javascript - 随机更改网页,而不会两次获得相同的页面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26464469/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com