IdentifiantMot de passe
Loading...
Mot de passe oubli� ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les r�ponses en temps r�el, voter pour les messages, poser vos propres questions et recevoir la newsletter

JavaScript Discussion :

Double switch CSS avec Cookies !


Sujet :

JavaScript

  1. #1
    Membre averti
    Inscrit en
    Novembre 2005
    Messages
    40
    D�tails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 40
    Par d�faut Double switch CSS avec Cookies !
    Je vous explique mon probleme, J'ai une page avec un switcher de CSS (en JS) pour mes diff�rents themes de couleur,

    J'aimerais en outre pouvoir faire de m�me avec des backgrounds, mais le seul moyen que j'ai trouv� est de changer la classe css pour le background... mais dans ce cas la, ce n'est pas stock� dans un cookie.

    Pour mieux comprendre, voici un lien :
    http://da4ever5.free.fr/allhtml/#

    On voit bien un switcher de style css avec gestion des cookie, mais pour les background, c'est un switch avec un lien... Moi j'aimerais pouvoir enregistrer les deux choix de mes internautes style + fond.

    Si quelqu'un a une id�e, je serais tr�s heureux !

    Merci d'avance

  2. #2
    Mod�rateur
    Avatar de Bis�n�rs
    Profil pro
    D�veloppeur Web
    Inscrit en
    Janvier 2004
    Messages
    9 931
    D�tails du profil
    Informations personnelles :
    �ge : 42
    Localisation : France, Rh�ne (Rh�ne Alpes)

    Informations professionnelles :
    Activit� : D�veloppeur Web

    Informations forums :
    Inscription : Janvier 2004
    Messages : 9 931

  3. #3
    Membre averti
    Inscrit en
    Novembre 2005
    Messages
    40
    D�tails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 40
    Par d�faut
    Salut Bis�n�rs,

    Je te remercie pour ton code, mais je 'avais deja vu (j'ai fait une petite recherche)...

    Mais en fait, j'ai deja un style switcher en JS qui marche tr�s bien...Le probleme n'est pas la, ce que je cherche � faire, c'est de permettre � mes visiteurs de choisir un style particulier parmis plusieurs, mais aussi un background parmis pusieurs et ce independamment des styles.

    Le tout g�r� avec des cookie.

    Pour le moment, j'ai bien un styleSwitcher qui change mes style, avec enregistrement dans un cookie, mais je voudrais faire pareil pour les backgrounds...

    comme dans le lien suivant : http://da4ever5.free.fr/allhtml/#
    mais en enregistrant aussi les background

  4. #4
    Mod�rateur
    Avatar de Bis�n�rs
    Profil pro
    D�veloppeur Web
    Inscrit en
    Janvier 2004
    Messages
    9 931
    D�tails du profil
    Informations personnelles :
    �ge : 42
    Localisation : France, Rh�ne (Rh�ne Alpes)

    Informations professionnelles :
    Activit� : D�veloppeur Web

    Informations forums :
    Inscription : Janvier 2004
    Messages : 9 931
    Par d�faut
    Dans ce cas-l�, tu cr��s un autre appel � ta fonction createCookie sur le onunload et tu lui mets un nouveau nom que tu r�cup�res ensuite.

  5. #5
    Membre averti
    Inscrit en
    Novembre 2005
    Messages
    40
    D�tails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 40
    Par d�faut
    Salut Bis�n�rs,

    Le probl�me c'est que je suis un vrai debutant en javascript, et je ne sais pas trop comment m'y prendre pour faire ce que tu me dis...

    Car le probl�me c'est que je change de classe pour les fonds et non de stylesheet comme pour les styles... car sinon il y a conflit entre les les diff�rents css et je perds mon background a chaque changement.

    Tu pourrais pas me guider pas a pas ?

    Mon JS ressemble a �a :


    function setActiveStyleSheet(title) {
    var i, a, main;
    for(i=0; (a = document.getElementsByTagName("link")[i]); i++) {
    if(a.getAttribute("rel").indexOf("style") != -1 && a.getAttribute("title")) {
    a.disabled = true;
    if(a.getAttribute("title") == title) a.disabled = false;
    }
    }
    }
    function getActiveStyleSheet() {
    var i, a;
    for(i=0; (a = document.getElementsByTagName("link")[i]); i++) {
    if(a.getAttribute("rel").indexOf("style") != -1 && a.getAttribute("title") && !a.disabled) return a.getAttribute("title");
    }
    return null;
    }
    function getPreferredStyleSheet() {
    var i, a;
    for(i=0; (a = document.getElementsByTagName("link")[i]); i++) {
    if(a.getAttribute("rel").indexOf("style") != -1
    && a.getAttribute("rel").indexOf("alt") == -1
    && a.getAttribute("title")
    ) return a.getAttribute("title");
    }
    return null;
    }
    function createCookie(name,value,days) {
    if (days) {
    var date = new Date();
    date.setTime(date.getTime()+(days*24*60*60*1000));
    var expires = "; expires="+date.toGMTString();
    }
    else expires = "";
    document.cookie = name+"="+value+expires+"; path=/";
    }
    function readCookie(name) {
    var nameEQ = name + "=";
    var ca = document.cookie.split(';');
    for(var i=0;i < ca.length;i++) {
    var c = ca[i];
    while (c.charAt(0)==' ') c = c.substring(1,c.length);
    if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
    }
    return null;
    }
    window.onload = function(e) {
    var cookie = readCookie("style");
    var title = cookie ? cookie : getPreferredStyleSheet();
    setActiveStyleSheet(title);
    }
    window.onunload = function(e) {
    var title = getActiveStyleSheet();
    createCookie("style", title, 365);
    }
    var cookie = readCookie("style");
    var title = cookie ? cookie : getPreferredStyleSheet();
    setActiveStyleSheet(title);

    et le changement de background est fait comme cela dans mon HTML :

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    <UL>
      <LI><A onClick="setActiveStyleSheet('1'); return false;"   href="#">Activer la skin "classique"</A> 
      <LI><A onClick="setActiveStyleSheet('2'); return false;"   href="#">Activer la skin "Alternative 1"</A> 
      <LI><A onClick="setActiveStyleSheet('3'); return false;"   href="#">Activer la skin "Alternative 2"</A> 
      </LI></UL>
    <UL>
      <LI><A onClick="setClass(fond,'fond')" href="#">Activer le fond rose</A> 
      <LI><A onClick="setClass(fond,'fond2');" href="#">Activer le fond jaune</A> 
      <LI><A onClick="setClass(fond,'fond3');" href="#">Activer le fond bleu</A> 
    </LI></UL>
    En tout cas, merci beaucoup pour ton aide

Discussions similaires

  1. Souci avec un double switch
    Par Olivier Regnier dans le forum Langage
    R�ponses: 1
    Dernier message: 25/08/2009, 18h53
  2. Probleme de double rolover en CSS avec des images
    Par gandoulfe dans le forum Mise en page CSS
    R�ponses: 3
    Dernier message: 12/04/2006, 16h24
  3. Menu CSS avec bordures - fonctionne firefox, pas ie
    Par Romalafrite dans le forum Mise en page CSS
    R�ponses: 5
    Dernier message: 21/11/2004, 15h40
  4. probl�me css avec :focus
    Par dervish dans le forum Mise en page CSS
    R�ponses: 7
    Dernier message: 28/09/2004, 16h18
  5. [struts] m�morisation d'une checkbox avec cookie
    Par rocco dans le forum Struts 1
    R�ponses: 3
    Dernier message: 22/04/2004, 12h39

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo