javascript - 重定向到随机页面(当前页面除外)

标签 javascript redirect random

已解决! - 在从 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");
};

目前使用的资源

Get current URL in web browser

window.open() should open the link in same tab

最佳答案

but instead I end up getting redirected to "http://bcitcomp.ca/students/hsloman/Comp1850/final/undefined"

undefined是因为你的randomPage变量将包含 1 之间的数字和 3 ,但您的 links 中的实际有效索引数组只有 01因为在您删除当前页面 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/

相关文章:

javascript - 如何让 jQuery Accordion 更简洁一点?

javascript - Webpack 正在破坏我的 .scss 样式表类

javascript - 更新数据属性对象属性值

php - Laravel 4.1 - 错误消息保留用于下一个请求

java - 循环遍历随机字母而不重复

c - 从文本文件中随机配对团队两次

时间:2019-03-17 标签:c#cultureinfoconvert

html - 301 将用户重定向到 https 协议(protocol),但前提是用户使用的是 http 协议(protocol)

JSF 过滤器在初始重定向后不重定向

c++ - 正确使用 s/rand 或 Boost::random