Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/475.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/78.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
HTML中的本地存储JavaScript_Javascript_Jquery_Html_Local Storage - Fatal编程技术网

HTML中的本地存储JavaScript

HTML中的本地存储JavaScript,javascript,jquery,html,local-storage,Javascript,Jquery,Html,Local Storage,我正在制作一个手工啤酒网页,我希望用户在进入之前输入他们的年龄。初始提示有效,但如果切换选项卡并返回主页,则会再次收到提示 问题:如何只获得一个提示并保存它,直到用户退出整个网页(包括导航选项卡)` 我的剧本: 函数CloseWindow(){ 窗口。打开(“”,“”,“”); window.close(); } 变量年龄; 年龄=提示(“请输入您的年龄:”; 如果(年龄>=21岁){ 警告(“年龄有效”); } 否则{ 警报(“无效年龄”); 关闭窗口(); } 使用窗口.localStor

我正在制作一个手工啤酒网页,我希望用户在进入之前输入他们的年龄。初始提示有效,但如果切换选项卡并返回主页,则会再次收到提示

问题:如何只获得一个提示并保存它,直到用户退出整个网页(包括导航选项卡)`

我的剧本:

函数CloseWindow(){
窗口。打开(“”,“”,“”);
window.close();
}
变量年龄;
年龄=提示(“请输入您的年龄:”;
如果(年龄>=21岁){
警告(“年龄有效”);
}
否则{
警报(“无效年龄”);
关闭窗口();
}

使用
窗口.localStorage
对象存储用户的年龄。这将允许信息在页面中持久保存

if (window.localStorage && !window.localStorage.age) {
     //Your code here to prompt the user's age and save it in window.localStorage.age
} else {
    //Your code here to prompt the user's age and save it in document.cookie
}

为此,需要在本地存储器中创建一个变量,并在再次运行整个函数之前检查其内容。我建议您在线查看如何实现这一点的教程,我为您找到了一个:

下面是一个简单的例子:

//Get the variable from the local storage
var age = localStorage.getItem('age') || 0; //instead you get nothing

if (age >= 18) {
   //access the website
} else {
   //here's where you run your function
   //...

   //Set the local storage variable
   localstorage.setItem('age', age) //where *age* is the name of the function's variable

}

我希望这会有帮助!祝你好运;)

下面是一个示例片段,介绍了如何在代码的基础上构建
localStorage
。你可以根据需要把它清理干净。如果您想要一个在关闭浏览器时重置的替代方案,您可以将
localStorage
替换为
sessionStorage

 function CloseWindow() {
   window.open('', '_self', '');
   window.close();
 }

 var validAge = localStorage.getItem('validAge');
 if (!validAge) {
   var age;
   age = prompt('Please enter in your age: ');
   if (age >= 21) {
     alert('Age is valid');
     localStorage.setItem('validAge', 'true');
   } else {
     alert('Not valid age');
     localStorage.setItem('validAge', 'false');
     CloseWindow();
   }
 } else if (validAge === 'true') {
   alert('Age is valid');
 } else if (validAge === 'false') {
   alert('Not valid age');
   CloseWindow();
 }

这是一个显示过时浏览器的本地存储多填充的示例。

在每个会话中执行本地存储
html5存储
设置cookie将是一个简单的方法。我同意@Nived。饼干是最好的选择。或者,如果您可以使用PHP,请设置一个会话变量。它是否应该首先检查
localStorage
support,如果不支持,则返回cookies?您是对的。我编辑了上面的示例以反映这一点。谢谢。嘿,这在Chrome上运行得很好,但在IE上我甚至连一个弹出框都没有。有什么想法吗?你用的是什么版本的IE?如果您使用的是低于8,那么它将不兼容。看见如果您想要本地存储的polyfill,请查看我文章底部的链接。单击
f12
并在右上角选项卡上查看
浏览器模式
。检查
控制台
以查看本地存储是否有错误。我已经尝试了IE,它对我很好。。您是否尝试过
f12
查看您使用的浏览器版本?尝试将设置更改为“出血”。我正在使用IE 11。。我不知道我的HTML文件是否与IE链接良好。我的标题是