今天解决一问题,拿出来分享

其实最后的方法是很简单,但是还是折腾了我半天.

目的:一静态页要在用户登录和没登录的不同状态显示不同信息.
实现方法肯定是用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 函数
代码大致如下
<?php
setcookie();//一些其它cookie
echo ‘<scrīpt>setCookie (’xxx’,'中文’)</scrīpt>’;//要js取的cookie
?>

最后解决方法很简单,但是一直没有想到,我想对大家有帮助吧

明天帖出js代码


function getCookieVal(offset) {
var 
endstr document.cookie.indexOf (“;”offset
);
if(
endstr == -1
) {
endstr document.cookie.length
;
}
return 
unescape(document.cookie.substring(offsetendstr
));
}
function 
getCookie(name
) {
var 
arg name “=”
;
var 
alen arg.length
;
var 
clen document.cookie.length
;
var 
0
;
var 
0
;
while(
clen
) {
alen
;
if(
document.cookie.substring(ij) == arg
)
return 
getCookieVal(j
);
document.cookie.indexOf(“ ”i) + 1
;
if(
== 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(namevalue
) {
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” “”
);
}

 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值