Changer de feuille de style

Signaler
Messages postés
6
Date d'inscription
mardi 6 novembre 2007
Statut
Membre
Dernière intervention
4 mars 2009
-
Messages postés
3426
Date d'inscription
lundi 26 décembre 2005
Statut
Membre
Dernière intervention
14 janvier 2011
-
Bonjour,

J'aimerais pouvoir laisser le choix au visiteur de mon site de choisir le theme qu'il veulent pour voir de quoi je parle regarder ici en bas de page à gauche de la page, comment faire?

Merci

7 réponses

Messages postés
12303
Date d'inscription
mardi 10 février 2004
Statut
Modérateur
Dernière intervention
30 juillet 2012
38
    for (i=0; (element=document.getElementsByTagName("link")[i]);i++){
        if (element.getAttribute("rel")=="stylesheet"){
            if (element.getAttribute("title")!=null)
                element.disabled=(element.getAttribute("title")==titre_du_style_a_mettre);
            else
                element.disabled=false;
        }
    }
Messages postés
6
Date d'inscription
mardi 6 novembre 2007
Statut
Membre
Dernière intervention
4 mars 2009

tu pourrai m'expliquer ce code ou le mettre par exemple ?je doit remplacer quelque chose par quelque chose d'autre comme
titre_du_style_a_mettre= je doit le nom du fichier
mais les autre ?
Messages postés
12303
Date d'inscription
mardi 10 février 2004
Statut
Modérateur
Dernière intervention
30 juillet 2012
38
non tu ne mets pas le titre du fichier... tu mets l'attribut title de ta balise link...
t'as des exemples un peu partout sur le net...
Messages postés
6
Date d'inscription
mardi 6 novembre 2007
Statut
Membre
Dernière intervention
4 mars 2009

Quelqu'un pourrai m'expliquer ce code car je n'y ait rien compris?

merci
Messages postés
3426
Date d'inscription
lundi 26 décembre 2005
Statut
Membre
Dernière intervention
14 janvier 2011
14
B
onjour,
La
fonction de coucou747 ne fonctionne pas,
autant utilser celle du site que tu annonces, donc celle de Paul Sowden.



//---------------------------------

function
setActiveStyleSheet(title){
  var i, a;
  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;

    }
  }
}


ceci n'est qu'un
extrait, l'explication compléte est à cette adresse
http://www.alistapart.com/articles/alternate/
...c'est en anglais mais bon...



;0)
Messages postés
12303
Date d'inscription
mardi 10 février 2004
Statut
Modérateur
Dernière intervention
30 juillet 2012
38
elle fonctionne tres bien sous firefox, et je ne l'ai pompee a personne
Messages postés
3426
Date d'inscription
lundi 26 décembre 2005
Statut
Membre
Dernière intervention
14 janvier 2011
14
Salut


coucou747


,
quand je dis que ta fonction ne marche pas c'est qu'en fait elle ne fait pas ce que l'on attend d'elle, ou plutôt ce que


Yoshi70


désire...

le element.disabled= (element.getAttribute("title")==titre_du_style_a_mettre);
j'ai supposé que le titre_du_style_a_mettre est le title passé en paramètre dans ce cas elle disabled si c'est le bon...


le
element.getAttribute("rel") =="stylesheet"

suppose que l'on n'utilse pas les styles alternatifs donc le dernier loader est celui appliqué...

elle marcherait, et marche si tu l'écris comme ceci


function setActiveStyleSheet(title){
  for (i=0; (element=document.getElementsByTagName("link")[i]);i++){
    if (element.getAttribute("rel")=="stylesheet"){
      if (element.getAttribute("title")!=null){
        element.disabled=(element.getAttribute("title")!= title);
      }
      else
        element.disabled=true;
    }
  }
}


avec le même effet quelque soit le navigateur.

le mérite, à mon sens, de la fonction



Paul Sowden


est qu'elle utilise au mieux les attributs des link et qu'elle répond entièrement au souhait de


Yoshi70









je ne l'ai pompée à personne

,
qui a dit cela ?
Il est un fait que quand on cherche à comprendre les choses il nous arrive de réinventer la roue, mais au moins on sait comment elle marche et pourquoi...



;0)