一聚教程网:一个值得你收藏的教程网站

最新下载

热门教程

setCookie javascript

时间:2008-02-28 编辑:简简单单 来源:一聚教程网

:一静态页要在用户登录和没登录的不同状态显示不同信息.
实现方法肯定是用js了.写了一js取cookie 的方法getCookie(name)
通过"
var u = getCookie(name);
if (u) {
    x.innerHTML = u;
} else {

}

方法实现一些信息不同显示
x.innerHTML = u;
目的就是在一处显示u这个cookie得到的信息,问题就出在这里
这个cookie是通过php setcookie设置的,结果js取出的中文是乱码,页面为utf-8
想了几点不是方法,如url编码都不行,最好想到我用js取,那也用js设置cookie不就好了,最好写一js的setCookie 函数
代码大致如下
setcookie();//一些其它cookie
echo '';//要js取的cookie
?>

function getCookieVal(offset) {
    var endstr = document.cookie.indexOf (";", offset);
    if(endstr == -1) {
        endstr = document.cookie.length;
    }
    return unescape(document.cookie.substring(offset, endstr));
}
function getCookie(name) {
    var arg = name + "=";
    var alen = arg.length;
    var clen = document.cookie.length;
    var i = 0;
    var j = 0;
    while(i < clen) {
        j = i + alen;   
        if(document.cookie.substring(i, j) == arg)
            return getCookieVal(j);
        i = document.cookie.indexOf(" ", i) + 1;
        if(i == 0)
            break;
    } 
    return null;
}
function deleteCookie(name) {
    var exp = new Date(); 
    var cval = getCookie(name); 
    exp.setTime(exp.getTime() - 1); 
    document.cookie = name + "=" + cval + "; expires=" + exp.toGMTString();
}
var gCookieExpDays = 80;
function setCookie(name, value) {
    var argv = setCookie.arguments;
    var argc = setCookie.arguments.length;
    var exp = (argc > 2) ? argv[2] : gCookieExpDays;
    var path = (argc > 3) ? argv[3] : null;
    var domain = (argc > 4) ? argv[4] : null;
    var secure = (argc > 5) ? argv[5] : false;
    var expires = new Date();
    deleteCookie(name);
    expires.setTime(expires.getTime() + (exp*24*60*60*1000));
    document.cookie = name + "=" + value +
        "; expires=" + expires.toGMTString() +
        ((domain == null) ? "" : ("; domain=" + domain)) +
        ((path == null) ? "" : ("; path=" + path)) +
        ((secure == true) ? "; secure" : "");
}

 

热门栏目