Popup我想在Javascript中出现一次

时间:2016-03-07 08:53:07

标签: 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) 
        {
            x = "You pressed OK!";
            b=true;
        } 
        else 
        {
            window.location = "http://google.com";
        } 
        document.getElementById("demo").innerHTML = x;

   }

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

2 个答案:

答案 0 :(得分:2)

我建议您使用Cookie来检查警报消息是否已经出现过一次。您可以在此链接上查看有关如何使用它的更多详细信息: http://www.w3schools.com/js/js_cookies.asp

答案 1 :(得分:1)

我建议通过cookie进行本地存储。由于漏洞问题,很多人都禁用了cookie。如果您对使用已关闭本地/会话存储的浏览器的人感到担忧 - 您可以使用类似Modernizr的内容来检测并具有后备选项。

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

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

点击“接受”按钮:

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

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