jQuery Cookie问题

时间:2011-04-09 16:23:43

标签: javascript session cookies detect

我经常环顾四周,似乎找不到任何对我来说足够简单的事情......

我已经设置了一个网页,可以检测当前正在运行的浏览器,如果它不是Firefox 4.0,它会显示一个隐藏的div,它会发出警告,指出该页面最适合在Firefox 4.0或更高版本中查看。在该div中是一个隐藏div onclick的按钮。

我正在寻找一种方法来记住在会话期间点击了此按钮,这样当用户点击我的“主页”时,他们每次都不会收到相同的消息。

当前代码:

<head>
    <script src="js/browsercheck.js"></script>
    <script type="text/javascript">
        // external script "browsercheck.js" checks
        // which browser/version is being used
        // check browser and display message if != Firefox 4.0 or >
        function checkBrowser() {
            var browser = BrowserDetect.browser;
            var version = BrowserDetect.version;
            if (browser == "Firefox") {
                if (version >= 4) {
                    // do nothing
                }
            } else {
                document.getElementById("coverall").style.visibility="visible";
                document.getElementById("browser").innerHTML = browser + " " + version;
            } 
        }
        // remove overlay if user commands
        function removeCoverall() {
            document.getElementById("coverall").style.visibility="hidden";
        }
    </script>
</head>
<body>
    <div id="coverall" style="visibility:hidden;">
        <p>I see you're using <span id="browser"></span>. Please use Firefox.</p>
        <button type="button" onclick="removeCoverall()">I understand</button>
    </div>
</body>

3 个答案:

答案 0 :(得分:1)

使用jQuery和cookie plugin,你可以这样做:

 function removeCoverall() {
            $.cookie("user_clicked_ok", "true");
            document.getElementById("coverall").style.visibility="hidden";
        }

$(window).ready(function() {
  if ($.cookie("user_clicked_ok")=="true") {removeCoverall();}
});

更多详情请见:http://www.electrictoolbox.com/jquery-cookies/

答案 1 :(得分:0)

removeCoverall函数中,您可以set a cookie表示用户已关闭div,并在checkBrowser函数中验证Cookie是否存在,然后再显示div。

答案 2 :(得分:0)

You seem to have the right idea, you need cookies! YUM!

<强> JS

function removeCoverall() {
    var date = new Date();
    date.setTime(date.getTime()+(7*24*60*60*1000));// expires in one week
    document.cookie = 'skipNotify=1;expires='+date.toGMTString()+'; path=/';
    document.getElementById("coverall").style.visibility="hidden";
}

现在在javascript中检索cookie可能很困难,但你可以使用PHP!

<强> PHP

function checkBrowser() {
    <?php if(isset($_COOKIE['skipNotify']))echo'return;';?>
    var browser = BrowserDetect.browser;
    var version = BrowserDetect.version;
    if (browser == "Firefox") {
        if (version >= 4) {
            // do nothing
        }
    } else {
        document.getElementById("coverall").style.visibility="visible";
        document.getElementById("browser").innerHTML = browser + " " + version;
    } 
}

如果用户有cookie,上面的代码会注入一个return语句,因此调用该函数将不会执行任何操作。

正如其他帖子中所述,我强烈建议您使用jQuery来满足您的所有JavaScript需求。它非常受欢迎,稳定且有用!我只给出了答案,因为它没有使用任何第三方解决方案。