Pregunta

Creo que necesitaré usar javascript para hacer esto, así que lo puse aquí en el desbordamiento de pila. Entonces, tengo dos temas para mi sitio web, la única diferencia es que uno es un color sólido (fondo), el otro una imagen repetida, así que no hice archivos css separados para ellos. Tengo dos enlaces en la barra de navegación que lo cambian (con javascript). En el archivo css es el color sólido, por lo que cada vez que se carga la página comienza así. Cuando se hace clic en el enlace del tema de la imagen, establece la imagen document.body.background en la imagen, y cuando se presiona el enlace del tema de color sólido, solo establece la imagen de fondo en " " (vacío), para que puedas ver el color de nuevo. Entonces, ¿cómo puedo hacer que el tema sea persistente y no cambie cuando el usuario vaya a otra página, así como cuando regrese en otro momento? Gracias.

EDITAR: Puedo usar PHP o JavaScript.

¿Fue útil?

Solución

Si está utilizando todo javascript y no tiene ningún código del lado del servidor para trabajar, aquí hay un ejemplo de JS para configurar y leer una cookie:

Agregue esta función a su JS, luego ejecútela cuando se cambie el tema:

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

Para leer la cookie y configurar el tema en la carga de la página (usar jQuery o similar $ (document) .ready () sería mejor que onload, pero aquí hay un ejemplo directo de js / 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*/
  }    

Otros consejos

Puede usar una sesión para realizar un seguimiento de las preferencias del usuario en el lado del servidor. Cuando el usuario regresa y tiene un tema seleccionado (que puede determinar a partir de las variables de la sesión), el servidor entregará HTML que tiene un conjunto de imágenes de fondo en lugar de un color sólido. Cuando el usuario alterna las preferencias, puede enviar una solicitud ajax que actualice las variables de la sesión.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top