Question

Je pense que j’aurai besoin d’utiliser javascript pour le faire, alors je le mets ici en dépassement de capacité. J'ai donc deux thèmes pour mon site Web. La seule différence est que l'un est une couleur unie (arrière-plan), l'autre une image répétée. Je n'ai donc pas créé de fichiers CSS distincts pour eux. J'ai deux liens dans la barre de navigation qui le changent (avec javascript). Dans le fichier css, c'est la couleur unie. Ainsi, chaque fois que la page est chargée, elle commence comme cela. Lorsque l'utilisateur clique sur le lien du thème de l'image, il définit l'objet document.body.backgroundImage. Lorsque vous appuyez sur le lien du thème de couleur unie, il définit simplement l'image d'arrière-plan sur """. (vide), afin que vous puissiez voir la couleur à nouveau. Alors, comment puis-je rendre le thème persistant et ne pas changer chaque fois que l'utilisateur va sur une autre page, ainsi que lorsqu'il revient une autre fois? Merci.

EDIT: je peux utiliser PHP ou javascript.

Était-ce utile?

La solution

Si vous utilisez tout le javascript et que vous n'avez pas de code côté serveur, voici un exemple JS pour définir et lire un cookie:

Ajoutez cette fonction à votre JS, puis exécutez-la lorsque le thème est modifié:

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

Pour lire le cookie et définir le thème lors du chargement de la page (utiliser jQuery ou un $ (document) .ready () similaire serait meilleur que onload, mais voici un exemple simple avec 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*/
  }    

Autres conseils

Vous pouvez utiliser une session pour suivre les préférences de l'utilisateur sur le serveur. Lorsque l'utilisateur se rallume et qu'un thème est sélectionné (que vous pouvez déterminer à partir des variables de session), le serveur fournit un code HTML dont la valeur backgroundImage est définie à la place de la couleur unie. Lorsque l'utilisateur modifie ses préférences, vous pouvez envoyer une demande ajax qui met à jour les variables de session.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top