Domanda

Penso che dovrò usare JavaScript per farlo, quindi lo metto qui in overflow dello stack. Quindi, ho due temi per il mio sito Web, l'unica differenza è che uno è un colore solido (sfondo), l'altro un'immagine ripetuta, quindi non ho creato file CSS separati per loro. Ho due collegamenti nella barra di navigazione che lo cambiano (con javascript). Nel file CSS è il colore solido, quindi ogni volta che la pagina viene caricata inizia così. Quando si fa clic sul collegamento del tema dell'immagine, imposta document.body.backgroundImage sull'immagine e, quando si preme il collegamento del tema di colore solido, imposta l'immagine di sfondo su " " (vuoto), in modo che tu possa vedere di nuovo il colore. Quindi, come posso rendere persistente il tema, non cambiando quando l'utente passa a un'altra pagina, così come quando ritornano un'altra volta. Grazie.

EDIT: posso usare PHP o javascript.

È stato utile?

Soluzione

Se stai utilizzando tutto javascript e non hai alcun codice lato server con cui lavorare, ecco un esempio di JS per impostare e leggere un cookie:

Aggiungi questa funzione al tuo JS, quindi eseguila quando il tema viene cambiato:

function set_theme(name){
  document.cookie='sel_theme='+name+';';
  }//so, run set_theme('whatevername'); when it is set by the user

Per leggere il cookie e impostare il tema al caricamento della pagina (usando jQuery o $ (documento) simile. () sarebbe meglio che caricare, però, ma ecco un esempio js / dom diretto)

 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*/
  }    

Altri suggerimenti

È possibile utilizzare una sessione per tenere traccia delle preferenze dell'utente sul lato server. Quando l'utente torna su e ha un tema selezionato (che è possibile determinare dalle variabili di sessione), il server distribuirà HTML con BackgroundImage impostato invece di un colore solido. Quando l'utente attiva o disattiva le preferenze, puoi inviare una richiesta Ajax che aggiorna le variabili di sessione.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top