如何制作基于cookie的侧边栏

时间:2015-08-13 05:37:20

标签: javascript

我想在我的网站上制作一个侧边栏,其工作方式类似于“当第一次登录用户进入页面时,侧边栏将出现在页面上,并且当他点击切换按钮时(隐藏工作)并显示侧边栏。

它将隐藏并且cookie将存储该操作,并且在刷新页面侧栏后不会在该页面上显示该时间。如果他想看到他可以点击按钮“。

2 个答案:

答案 0 :(得分:1)

最好是将localStorage用于此类事情,基本上就是如何设置和获取数据

2015-08-13T03:51:41.013118+00:00 heroku[router]: at=info method=GET path="/favicon.ico" host=stephensample.herokuapp.com request_id=2f6f71a9-bca9-4b7c-8d35-cae752e94282 fwd="128.250.0.10" dyno=web.1 connect=0ms service=4ms status=200 bytes=228
2015-08-13T03:51:58.913419+00:00 app[web.1]: Started GET "/users/sign_in" for 128.250.0.10 at 2015-08-13 03:51:58 +0000
2015-08-13T03:51:59.047547+00:00 app[web.1]:   Rendered devise/shared/_links.html.erb (1.7ms)
2015-08-13T03:51:59.047614+00:00 app[web.1]:   Rendered devise/sessions/new.html.erb within layouts/application (64.1ms)

为什么更好:当cookie没有到期日期时,一旦浏览器关闭就会被删除,所以在侧边栏切换设置到期日是非常愚蠢的事情,更好的是使用localStorage,因为它没有限制,以及更好的API使用。 All major browsers support it。详细了解localStorage

答案 1 :(得分:0)



<!DOCTYPE html>
<html>
<head>
<script>

function setCookie(cname,cvalue,exdays) {
    var d = new Date();
    d.setTime(d.getTime() + (exdays*24*60*60*1000));
    var expires = "expires=" + d.toGMTString();
    document.cookie = cname+"="+cvalue+"; "+expires;
}

function getCookie(cname) {
    var name = cname + "=";
    var ca = document.cookie.split(';');
    for(var i=0; i<ca.length; i++) {
        var c = ca[i];
        while (c.charAt(0)==' ') c = c.substring(1);
        if (c.indexOf(name) == 0) {
            return c.substring(name.length, c.length);
        }
    }
    return "";
}

function checkCookie() {
    var user=getCookie("username");
    if (user != "") {
        alert("Welcome again " + user);
    } else {
       user = prompt("Please enter your name:","");
       if (user != "" && user != null) {
           setCookie("username", user, 30);
       }
    }
}

</script>
</head>
<body onload="checkCookie()">
</body>
</html>
&#13;
&#13;
&#13;

为了更好地转到此链接:Link