js设置不了cookie

JavaScript06

js设置不了cookie,第1张

本地单纯的一个html文件(没有服务器归属)在谷歌浏览器中cookie无效,其它浏览器好像都可以正常读写的,如果你确定cookie.js没有问题的话,注意一下id是不是重复了(你上面的代码就出现了id重复),还有body不是在head里面的

实现如下:

//JS操作cookies方法!

//写cookies

function

setCookie(name,value)

{

var

Days

=

30

var

exp

=

new

Date()

exp.setTime(exp.getTime()

+

Days*24*60*60*1000)

document.cookie

=

name

+

”=”+

escape

(value)

+

”expires=”

+

exp.toGMTString()

}

//读取cookies

function

getCookie(name)

{

var

arr,reg=new

RegExp(”(^|

)”+name+”=([^]*)(|$)”)

if(arr=document.cookie.match(reg))

return

unescape(arr[2])

else

return

null

}

//删除cookies

function

delCookie(name)

{

var

exp

=

new

Date()

exp.setTime(exp.getTime()

-

1)

var

cval=getCookie(name)

if(cval!=null)

document.cookie=

name

+

”=”+cval+”expires=”+exp.toGMTString()

}

//使用示例

setCookie(”name”,”hayden”)

alert(getCookie(”name”))

//如果需要设定自定义过期时间

//那么把上面的setCookie 函数换成下面两个函数就ok

//程序代码

function

setCookie(name,value,time){

var

strsec

=

getsec(time)

var

exp

=

new

Date()

exp.setTime(exp.getTime()

+

strsec*1)

document.cookie

=

name

+

”=”+

escape

(value)

+

”expires=”

+

exp.toGMTString()

}

function

getsec(str){

alert(str)

var

str1=str.substring(1,str.length)*1

var

str2=str.substring(0,1)

if

(str2==”s”){

return

str1*1000

}else

if

(str2==”h”){

return

str1*60*60*1000

}else

if

(str2==”d”){

return

str1*24*60*60*1000

}

}

//这是有设定过期时间的使用示例:

//s20是代表20秒

//h是指小时,如12小时则是:h12

//d是天数,30天则:d30

//暂时只写了这三种

setCookie(”name”,”hayden”,”s20″)

JavaScript无法从cookie中取到登录态,因为cookie只能用来存储少量的数据,而登录态需要存储更多的数据,所以JavaScript无法从cookie中取到登录态。另外,JavaScript也不支持持久性的存储,因此无法将登录态保存到cookie中。因此,为了实现登录态的保存,开发者需要使用更高级的技术,比如使用服务器端的会话管理技术,或者使用HTML5的Web Storage技术。