Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/425.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/3/html/90.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
弹出窗口我想在Javascript中出现一次_Javascript_Html_Css_Popup - Fatal编程技术网

弹出窗口我想在Javascript中出现一次

弹出窗口我想在Javascript中出现一次,javascript,html,css,popup,Javascript,Html,Css,Popup,我正在制作一个静态网站(没有服务器端),我只能使用HTML、CSS和一些脚本 我用JS制作了这个弹出式脚本,每个页面都包含了这个脚本: b=false; if(!b) { window.accept(); } function accept() { var r = confirm('By clicking you are ready to accept condition'); if (r == true)

我正在制作一个静态网站(没有服务器端),我只能使用HTML、CSS和一些脚本

我用JS制作了这个弹出式脚本,每个页面都包含了这个脚本:

 b=false;
    if(!b)
    {
        window.accept();
    }

   function accept()
   {


       var r = confirm('By clicking you are ready to accept condition');
        if (r == true) 
        {
            x = "You pressed OK!";
            b=true;
        } 
        else 
        {
            window.location = "http://google.com";
        } 
        document.getElementById("demo").innerHTML = x;

   }
我希望这个弹出窗口只出现一次,因此我声明了一个布尔变量,一旦用户单击OK,它就会取相反的值。
它不工作,弹出窗口仍然显示。

我建议您使用cookies检查警报消息是否已经出现过一次。您可以在此链接上查看如何使用它的更多详细信息:

我建议本地存储优于cookies。许多人由于脆弱性问题而禁用了cookie。如果您担心人们使用关闭了本地/会话存储的浏览器,您可以使用类似Modernizer的工具来检测这种情况,并提供一个后退选项

On Page load(使用checkState作为保存此信息的存储变量):

单击“接受”按钮时:


不,本地存储比会话存储持续时间长,因此我倾向于更频繁地使用会话存储。但这两种类型都允许您在不同页面加载期间保留接受记录,并且不依赖于使用cookie的服务器/网络开销。此外-为完整起见,本地和会话存储本身并不安全,不应用于存储敏感信息,如密码等。

您的意思是它仍然显示?你的意思是当你刷新页面时,它会再次出现?b是全局变量吗?如果你在另一个函数中这样做,那么你最好使用window.b!或者当我加载另一个包含脚本的页面时。这和“某些”网站一样,要求用户在进入网站时接受条件,但我认为我应该选择cookies,投票,好答案!您可以使用本地存储而不是coockiePerfect!不过我用了sessionStorage,没问题。
 var checkState= localStorage.getItem('checkState');
    if(checkState=="true"){ 
    //code for accepted conditions}else
    {//code for not accepted condition};
localStorage.setItem('checkState','true');