Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

daniele bianca

cookie em javascript

Recommended Posts

sou iniciante em javascript. estou criando um site em que o usuário pode mudar a cor de fundo, e a mesma deve ser memorizada até que ele mude a cor novamente.

 

tentei fazer, só que acho que errei em alguma coisa. toda vez que a página recarrega, a cor escolhida desaparece e volta tudo ao padrão.

 

alguém poderia me dar um exemplo desse código que enviei pronto? e onde colocar cada parte necessária para funcionar?

 

function setCookie(name, value, expires, path, domain, secure) {
var curCookie = name + "=" + escape(value) +
((expires) ? "; expires=" + expires.toGMTString() : "") +
((path) ? "; path=" + path : "") +
((domain) ? "; domain=" + domain : "") +
((secure) ? "; secure" : "");
document.cookie = curCookie;
}
function getCookie(name) {
var dc = document.cookie;
var prefix = name + "=";
var begin = dc.indexOf("; " + prefix);
if (begin == -1) {
begin = dc.indexOf(prefix);
if (begin != 0) return null;
} else
begin += 2;
var end = document.cookie.indexOf(";", begin);
if (end == -1)
end = dc.length;
return unescape(dc.substring(begin + prefix.length, end));
}
function deleteCookie(name, path, domain) {
if (getCookie(name)) {
document.cookie = name + "=" +
((path) ? "; path=" + path : "") +
((domain) ? "; domain=" + domain : "") +
"; expires=Thu, 01-Jan-70 00:00:01 GMT";
history.go(0);
}
}
function fixDate(date) {
var base = new Date(0);
var skew = base.getTime();
if (skew > 0) date.setTime(date.getTime() - skew);
}

 

por favor me ajudem!!!!!!!!!!!!!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Uai esse código seu está funcionando? Voce está conseguindo gravar os cookies? Se sim, apenas salve a cor do bg do usuario e no onload da pagina voce recupera esse cookie. Se esse código não estiver funcionando use esse:

function setCookie(cname, value, exdays) {
var exdate = new Date(), cvalue;
exdate.setDate(exdate.getDate() + exdays);
cvalue = escape(value) + ((exdays==null) ? "" : "; expires="+exdate.toUTCString());
document.cookie = cname + "=" + cvalue;
}

function getCookie(cname) {
var i,x,y,
cookies = document.cookie.split(";");
for (i=0;i<cookies.length;i++) {
	x = cookies[i].substr(0,cookies[i].indexOf("="));
	y = cookies[i].substr(cookies[i].indexOf("=")+1);
	x = x.replace(/^\s+|\s+$/g,"");
	if (x==cname) {
		return unescape(y);
	}
}
return null;
}

function deleteCookie(cname) {
setCookie(cname,'',-1);
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

oi,

 

acho que sou eu mesma que estou errando ou esquecendo alguma coisa. se não estou enganada o nome do cookie é corbg. cada cor tem um número. 0 é o padrão. e a partir do 1 são cores comuns que vão até a 15.

 

mas como eu faço para recuperar o cookie exato no onload?

 

obrigado pela ajuda!

Compartilhar este post


Link para o post
Compartilhar em outros sites

crie uma função para recuperar seu cookie, por exemplo:

 

function updateBG(){
var color = getCookie('corbg') // seu cookie
if (color != null){ // verifica se o cookie existe
	document.bgColor = color // se existir, aplica a cor
       }
}

 

E então chame sua função pelo onload do BODY:

 

<body onload="updateBG();">

 

Desse jeito que estou te mostrando o cookie já retornaria o nome da cor ou o hexadecimal. Voce disse que voce salva por numeros, então antes de document.bgColor = color converta o valor do para a cor.

Compartilhar este post


Link para o post
Compartilhar em outros sites

crie uma função para recuperar seu cookie, por exemplo:

 

function updateBG(){
var color = getCookie('corbg') // seu cookie
if (color != null){ // verifica se o cookie existe
	document.bgColor = color // se existir, aplica a cor
       }
}

 

E então chame sua função pelo onload do BODY:

 

<body onload="updateBG();">

 

Desse jeito que estou te mostrando o cookie já retornaria o nome da cor ou o hexadecimal. Voce disse que voce salva por numeros, então antes de document.bgColor = color converta o valor do para a cor.

 

oi novamente,

 

acho que só estou precisando de uma coisa: como eu defino para que o cookie não expire?

 

obrigado de novo!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Para o cookie não expirar chame a função setCookie (do meu código que te passei) sem o parametro exdays.

Exemplo:

 

setCookie("cor","red",7) // dura 7 dias
setCookie("cor","red") // não tem expiração

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.