Mantenha site tema o mesmo .. cookies?
-
06-07-2019 - |
Pergunta
Eu acho que vai precisar usar javascript para fazer isso assim que eu colocá-lo aqui no estouro de pilha. Então, eu tenho dois temas para o meu site, a única diferença é que um é uma cor sólida (fundo), a imagem repetida outro um, então eu não fazia arquivos CSS separados para eles. Eu tenho dois links na barra de navegação que mudá-lo (com javascript). No arquivo css sua a cor sólida, de modo que sempre que a página é carregada ele começa como isso. Quando o link tema imagem é clicado, ele define o document.body.backgroundImage à imagem, e quando o link tema de cor sólida é pressionado ele apenas define a imagem de fundo para "" (vazio), para que você possa ver a cor novamente . Então, como posso fazer o tema persistente, não mudar sempre que o usuário vai para outra página, bem como quando eles retornam outra vez. Obrigado.
EDIT:. Eu posso usar PHP ou javascript
Solução
Se você estiver usando todos javascript e não têm qualquer código serverside para trabalhar, aqui está um exemplo JS para definir e ler um cookie:
Adicione esta função ao seu JS, em seguida, executá-lo quando o tema é alterado:
function set_theme(name){
document.cookie='sel_theme='+name+';';
}//so, run set_theme('whatevername'); when it is set by the user
Para ler o cookie e definir o tema no carregamento da página (usando jQuery ou US $ similares (document) .ready () seria melhor do que onload, embora, mas aqui está um js retas / example dom)
window.onload=function(){
var cookie_pos=document.cookie.indexOf('sel_theme=');//locate value in cookie
if(cookie_pos!=-1){//if string was found
var cookie_flavor=substr(cookie_pos+10,document.cookie.indexOf(';',cookie_pos));//extract the value of the cookie
/*then run your already existing change theme function using the extracted name*/
}
Outras dicas
Você pode usar uma sessão para acompanhar as preferências do usuário na serverside. Quando o usuário vem de volta e tem um tema selecionado (que você pode determinar a partir das variáveis ??de sessão), em seguida, o servidor vai entregar HTML que tem backgroundImage definir em vez de uma cor sólida. Quando as preferências alterna usuário pode enviar uma solicitação ajax que atualiza as variáveis ??de sessão.