Javascript 如果刷新/重新加载页面,则提示仅触发一次并存储值

Javascript 如果刷新/重新加载页面,则提示仅触发一次并存储值,javascript,Javascript,我的页面上有一个提示,询问用户的年龄。如果超过18岁,则允许用户登录主页,否则,用户将被重定向到其他网站 问题是,如果我转到另一个页面,然后回到主页,提示会再次触发,再次询问用户的年龄 有没有办法存储第一次输入的值并防止再次触发提示 这是我的密码: Javascript: var ageCheck=prompt(“你多大了?”) 如果(年龄检查>=18){ 警惕(“欢迎光临盗版!”); } 否则{ 警报(“您必须年满18岁才能登录此网站。您将被重定向。”) window.location.hr

我的页面上有一个提示,询问用户的年龄。如果超过18岁,则允许用户登录主页,否则,用户将被重定向到其他网站

问题是,如果我转到另一个页面,然后回到主页,提示会再次触发,再次询问用户的年龄

有没有办法存储第一次输入的值并防止再次触发提示

这是我的密码:

Javascript:

var ageCheck=prompt(“你多大了?”)
如果(年龄检查>=18){
警惕(“欢迎光临盗版!”);
}
否则{
警报(“您必须年满18岁才能登录此网站。您将被重定向。”)
window.location.href=”https://www.drinkaware.co.uk/advice/underage-drinking";

}
一种方法是使用
localStorage
存储数据。它将直接将数据存储到浏览器中

例如:

localStorage.setItem('myCat', 'Mimi');

console.log(localStorage.getItem('myCat'));
如果我得到您的代码,它将如下所示:

// Get the age from local storage
 const ageCheck = localStorage.getItem("age");
 
 if(!ageCheck){
  // If ageCheck is null then we prompt "How old are you?" and set the item
   const age = prompt("How old are you?")
   localStorage.setItem("age", age);
 } else {
  // Else we check the age 
  if (ageCheck >= 18) {
        alert("Welcome to Ginspiration!");
    }
    else {
      alert("You must be at least 18 years old to be allowed on this website. You will be redirected.")
        window.location.href="https://www.drinkaware.co.uk/advice/underage-drinking";
    }
}


您可以将值存储在
localstorage
中,并在页面加载时检索数据

const data=localstorage.getItem(“is18”);
//在提示之前,请检查此处的某些条件
如果(数据===false){
var ageCheck=prompt(“您多大了?”)
如果(年龄检查>=18){
setItem(“is18”,true);
警惕(“欢迎光临盗版!”);
}否则{
setItem(“is18”,false);
警报(“您必须年满18岁才能登录此网站。您将被重定向。”)
window.location.href=”https://www.drinkaware.co.uk/advice/underage-drinking";
}

}
您需要将答案保存在某个地方。SESSION/COOKIE/localStorage(取决于您想记住它的时间,如果它应该跨PC/浏览器供注册用户使用,等等)。谢谢,不幸的是,它似乎没有任何作用(提示不会触发)谢谢!但我现在遇到了一个问题,每次我回到主页时,警报都会触发(即,提示不会触发,但警报会触发。我希望在用户输入他们的年龄后两者都不会触发)。嗨@LauraCabTay很高兴我帮了你。请考虑通过点击复选标记来接受它。这向更广泛的社区表明,你已经找到了一个解决方案,并给回答者和你自己带来了一些声誉。如果您还有其他问题,请随时发表其他帖子:)