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

Foi útil?

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.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top