HTML更改显示以在用户已烹饪时阻止

时间:2014-10-24 18:06:24

标签: javascript html cookies

HTML code:

<div id="popupID"/>
<div id="hid" style="display:none;">
<table style="background:white; box-shadow:0px 1px 1px 1px #CCC;">
<tr>
<td style=" background:#C30;font-family:Verdana, Geneva, sans-serif; font-size:30px; padding-top:10px;padding-bottom:10px; color:white; "><center>Step 1</center></td><td style="font-family:Verdana, Geneva, sans-serif; color:white; padding-top:10px;padding-bottom:10px;background:#060; font-size:30px;"><center>Step 2</center></td>
</div>

Javascript代码:

<script type="text/javascript">    

var beenherecookie = 'FE44been644';

var beenherebegin = document.cookie.indexOf(beenherecookie);

var isFirstTime = false;
var popupHandler = function(firstTime){
    if(firstTime){
        return "block";
    }
    else{
        return "none";
    }
}

if (beenherebegin >    -1){
    isFirstTime = false; 
    WriteCookie("FE44been644","yes");}
}
else{
    isFirstTime = true;
}

document.getElementById('popupID').style.display= popupHandler(isFirstTime);

</script>

这是我的隐藏时间限制的功能:

//function showIt() {
//  document.getElementById("hid").style.display = "block";
//}
//setTimeout("showIt()", 300000); // 1000 is 1 second

所以这就是我希望它以某种方式工作的方式。 当用户第一次访问时,显示的样式将是无。 然后同时,该功能将在其浏览器中写入一个cookie,当用户第二次访问同一站点时,显示的样式将被阻塞。 我无法弄清楚该怎么做。 我希望新用户第一次访问该网站然后它会设置无阻塞至少5分钟,所以当用户再次返回页面时,他不需要等待,它将改为块 有人可以帮助我吗?

2 个答案:

答案 0 :(得分:0)

当它的isFirstTime = true时,不应该使用WriteCookie吗? 不是在它错的时候。 如果是第一次,请设置cookie。如果他们已经在这里,则无需做任何事情。

答案 1 :(得分:0)

您可以尝试类似

的内容
<script type="text/javascript"> 
    var cookieName = 'myCookie';

    if (document.cookie.indexOf(cookieName) > -1) {
        document.getElementById('popupID').style.display= "block";
    } else {
        //writecookie
        document.cookie=(cookieName+"=yes");
        //setTimeout... TODO
    }
</script>

小心测试代码的方式。如果直接从浏览器中的文件系统加载html页面,则不会写入cookie。