已解决! - 在从 switch 语句更改为数组后没有更新我的随机数生成...ups。 - 谢谢!
问题
构建网络漫画并希望拥有其中一个“随机”按钮,您可以在其中跳转到任何 strip 。我假设最好的方法是在后端(PHP 或类似的)执行此操作,但我想用 JavaScript 来完成。
我尽可能地选择了一个随机页面,但有一个问题,它有时会重定向到它已经在的页面(或者更确切地说,经常直到我有更多页面)。如果当前页面与目标页面相同,我试图让它从数组中取出页面,但我最终被重定向到“http://bcitcomp.ca/students/hsloman/Comp1850/最终/未定义
”
我什至确保使用拼接而不是删除。这不会重新索引列表吗?
代码
var pickRandomPage = function () {
// random Pages available
var links = [
"construction.html",
"placeholder.html",
"noplaymobil.html"];
// current Page
var currentURL = window.location.href;
var currentPage = currentURL.substr(currentURL.lastIndexOf('/')+1);
// get rid of current page from array of options
for(var i = 0; i < links.length; i++){
if(links[i] == currentPage){
links.splice(i,1);
}
}
// get a random number, rounded number between 0 and number of links
var randomPage = Math.floor((Math.random() * 3) + 1);
var link = 'http://bcitcomp.ca/students/hsloman/Comp1850/final/' + links[randomPage];
// open it
window.open(link,"_self");
};
目前使用的资源
最佳答案
but instead I end up getting redirected to "http://bcitcomp.ca/students/hsloman/Comp1850/final/undefined"
undefined
是因为你的randomPage
变量将包含 1
之间的数字和 3
,但您的 links
中的实际有效索引数组只有 0
或 1
因为在您删除当前页面 URL 后它将只有两个元素。
改变:
var randomPage = Math.floor((Math.random() * 3) + 1);
到:
var randomPage = Math.floor(Math.random() * links.length);
关于javascript - 重定向到随机页面(当前页面除外),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40230165/