2016-03-07 54 views
-2

我正在制作一个静态网站(无服务器端),我只能使用HTML,CSS和一些脚本。Popup我想在Javascript中出现一次

我已经和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; 

    } 

我想要那个弹出只出现一次,因此,我宣布一个布尔变量这需要一旦用户相反值点击确定。 它不起作用,弹出窗口仍然显示。

+0

你的意思是它仍然显示出来吗?你的意思是当你刷新页面时会再次出现? – Almis

+0

是** b **是一个全局变量吗?如果你在另一个函数中这样做,那么你最好使用window.b到处 –

+0

正是!或者当我加载另一个包含脚本的页面时。这与“某些”网站要求用户在进入网站时接受条件是一样的,但我认为我应该去cookies, – Aleks

回答

1

我会推荐本地存储Cookie。由于漏洞问题,很多人都禁用了Cookie。如果您对使用浏览器的用户担心本地/会话存储已关闭 - 您可以使用像Modernizr这样的功能来检测该功能并选择退出功能。

的onpage负载(使用checkState作为存储变量用于保持此信息):

var checkState= localStorage.getItem('checkState'); 
    if(checkState=="true"){ 
    //code for accepted conditions}else 
    {//code for not accepted condition}; 
上点击“接受”按钮

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

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

+0

完美!我用sessionStorage,但没关系。 – Aleks