我的html(+javascript)不会重定向到下一页。:(

My html (+javascript) will not redirect to the next page. :(

提问人:jljjj 提问时间:7/19/2023 最后编辑:engjljjj 更新时间:7/19/2023 访问量:46

问:

我通过 Javascript 做了一个计数循环。我的目标是,当它达到 100 时,它会重定向到另一个页面。

var number = document.getElementById("mainText").textContent;
var nnumber = parseInt(number)

function myLoop() {         
  setTimeout(function() {   
    nnumber += 1;
    document.getElementById("mainText").innerHTML = nnumber  
    nnumber++;                    
    if (nnumber < 101) {           
      myLoop();             
    }                       
  }, 200)
}
    
if(nnumber == 100){
    console.log(typeof(nnumber))
    window.location.replace("mainverification.html")
}
myLoop();

    element1 = document.getElementById("element1")
    element2 = document.getElementById("element2")
    element3 = document.getElementById("element3")
    element4 = document.getElementById("element4")
    element5 = document.getElementById("element5")
    setTimeout(function(){
        element2.style.display = "block"
        element1.style.display = "none" 
        setTimeout(function(){ 
            element2.style.display="none"
            element3.style.display="block"
            setTimeout(function(){ 
            element3.style.display="none"
            element4.style.display="block"
            setTimeout(function(){ 
                element4.style.display="none"
                element5.style.display="block"},2500)},2500)},2500)
            },1000)


我知道这是很多代码,但是是的......由于某种原因,if 语句似乎不起作用。它不会重定向。有关更多上下文,以下是 HTML:

<!DOCTYPE html>
<html>
<head>
<title>Loading....</title>
<link rel="stylesheet" href="./starting.css">
</head>
<script src="https://kit.fontawesome.com/1f2023aaf1.js" crossorigin="anonymous"></script>
<body>
<i id="fa" class="fa fa-spinner fa-10x"></i>"></i><br>
<p id="mainText">0</p>
<p class="idk">%</p>
<p id="element1">Getting Data</p><br>
<p id="element2">Encrypting Data (Your Data is Private!)</p><br>
<p id="element3">Storing Data</p><br>
<p id="element4">Grabbing a Cofee</p><br>
<p id="element5">Playing Fortnite</p><br>
<script src="loading.js"></script>          
</body>
</html>

如果有人能找到什么问题,id受益。提前致谢。

JavaScript Python HTML 循环

评论

2赞 David 7/19/2023
这与 Python 有什么关系?关于显示的逻辑... 在正在重复的函数之外。此条件仅在页面首次加载时执行一次。如果该值当时不满足条件,则不会重定向,也不会再次检查。if(nnumber == 100)if
1赞 epascarello 7/19/2023
因为 if 语句不在循环中......当页面加载时,它只会被检查一次。

答:

0赞 David 7/19/2023 #1

您每 200 毫秒重复检查一次此条件:

if (nnumber < 101) {           
  myLoop();             
}

但是,在页面首次加载时,您检查此条件一次,并且仅检查一次:

if(nnumber == 100){
  console.log(typeof(nnumber))
  window.location.replace("mainverification.html")
}

如果您还想重复检查后一个条件,则每 200 毫秒一次,将 放入前一个条件所在的函数中。myLoop

0赞 hassan 7/19/2023 #2
enter code here

var number = document.getElementById("mainText").textContent;
var nnumber = parseInt(number)

function myLoop() {         
setTimeout(function() {   
    nnumber += 1;
    document.getElementById("mainText").innerHTML = nnumber;
    nnumber++;                    
    if (nnumber < 101) {           
    myLoop();             
    } else {
    // Redirect when nnumber reaches 100
    window.location.replace("mainverification.html");
    }                       
}, 200);
}

element1 = document.getElementById("element1");
element2 = document.getElementById("element2");
element3 = document.getElementById("element3");
element4 = document.getElementById("element4");
element5 = document.getElementById("element5");

setTimeout(function(){
    element2.style.display = "block";
    element1.style.display = "none"; 
    setTimeout(function(){ 
        element2.style.display = "none";
        element3.style.display = "block";
        setTimeout(function(){ 
            element3.style.display = "none";
            element4.style.display = "block";
            setTimeout(function(){ 
                element4.style.display = "none";
                element5.style.display = "block";
            }, 2500);
        }, 2500);
    }, 2500);
}, 1000);

// Start the loop when the page loads
myLoop();

评论

0赞 Community 7/20/2023
正如目前所写的那样,你的答案尚不清楚。请编辑以添加其他详细信息,以帮助其他人了解这如何解决所提出的问题。您可以在帮助中心找到有关如何写出好答案的更多信息。