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

Popup I want to appear once in Javascript

我正在制作一个静态网站(没有服务器端),我只能使用 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;

   }

我希望该弹出窗口只出现一次,因此我声明了一个布尔变量,一旦用户单击“确定”,该变量就会取相反的值。 不行,弹窗还在。

我建议您使用 cookie 来检查警告消息是否已经出现过一次。你可以在 link 上看到更多关于如何使用它的细节: http://www.w3schools.com/js/js_cookies.asp

我会推荐本地存储而不是 cookie。由于漏洞问题,很多人都禁用了 cookie。如果您担心人们使用的浏览器关闭了本地/会话存储 - 您可以使用 Modernizr 之类的工具来检测并提供后备选项。

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

 var checkState= localStorage.getItem('checkState');
    if(checkState=="true"){ 
    //code for accepted conditions}else
    {//code for not accepted condition};

单击 "accept" 按钮时:

localStorage.setItem('checkState','true');

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