Javascript, CSS - style switcher avec les cadres

lataupe78 Messages postés 5 Date d'inscription mardi 20 décembre 2005 Statut Membre Dernière intervention 12 mars 2009 - 25 juin 2007 à 19:56
PetoleTeam Messages postés 3426 Date d'inscription lundi 26 décembre 2005 Statut Membre Dernière intervention 14 janvier 2011 - 28 juin 2007 à 19:28
Mes hommages, ç'est mon 1er post et ç'est une question assez tarabiscotée:
Je débute et je suis en train de créer mon site perso sous IE en html,CSS et javavascript; jusque là rien d'extraordinaire, mais voilà:
j'ai trouvé un style switcher en javascript qui marche, la classe je vais pouvoir faire des CSS dignes du Zen Garden!
LE PROBLEME est qu'il ne marche pas avec les frames... impossible de l'actualiser sur l'ensemble des pages simultanément... Quelqu'un peut-il me venir en aide? Mon exemple est ici (ne tenez pas compte de la bannière du haut, elle n'a pas de CSS..)

5 réponses

PetoleTeam Messages postés 3426 Date d'inscription lundi 26 décembre 2005 Statut Membre Dernière intervention 14 janvier 2011 17
27 juin 2007 à 18:29
B
onjour...
Le problème est que dans ta fonction tu fait réfèrence à document



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




Il te faudrait faire réfèrence au document de la FRAME...

un truc du style

function setActiveStyleSheet(title) {
var Doc = parent.frames['GAUCHE'].document;
var i, main;
var a = Doc

.getElementsByTagName("link");



for( i=0; i < a.length; i++) {
if(a[i].getAttribute("rel").indexOf("style") != -1 && a

[i]

.getAttribute("title")){
a

[i]

.disabled = true;
if(a

[i]

.getAttribute("title") == title) a

[i]

.disabled = false;
}
}
}




Garantie sans TEST







;0)
0
PetoleTeam Messages postés 3426 Date d'inscription lundi 26 décembre 2005 Statut Membre Dernière intervention 14 janvier 2011 17
27 juin 2007 à 18:30
OULA
bonjour la grosse cagagne 1000 excuses...
;0)
0
lataupe78 Messages postés 5 Date d'inscription mardi 20 décembre 2005 Statut Membre Dernière intervention 12 mars 2009
28 juin 2007 à 02:09
Ca fait près d'une semaine que je galère alors merci de ta réponse ;)
Mais l'hémisphère droit l' a emporté sur l'hémisphère gauche, la passion sur la logique (ou est-ce l'inverse? :s )
Bref, j'ai mis le selecteur de thêmes sur index.html (pas de frames) et là youpi ça marche sur les pages suivantes!
Du coup je vais pouvoir gribouiller un peu ça va me permettre d'oublier ces nuits tourmentées :p --> un aperçu
Enfin je persiste quand même car j'aimerais comprendre..
Malgré mes recherches et  moults tentatives (listages des frames, parent.)  je n'arrive pas à isoler la frame du styleswitcher (un id ou un Name fixe peut être?),
ni de là  à rafraîchir les autres frames... En fait je ne suis même pas sur de comprendre l'algorithme et le a.disabled ...
Quelqu'un aurait des idées ou des explications SVP ?
 
0
lataupe78 Messages postés 5 Date d'inscription mardi 20 décembre 2005 Statut Membre Dernière intervention 12 mars 2009
28 juin 2007 à 02:13
(suite... )
D'autant que le thêmele initial s'affiche à chaque page puis bascule sur celui en cours... plutôt moche j'avoue!
Va falloir mettre toutes mes images en cache et encore...
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
PetoleTeam Messages postés 3426 Date d'inscription lundi 26 décembre 2005 Statut Membre Dernière intervention 14 janvier 2011 17
28 juin 2007 à 19:28
B
onjour...
Dommage d'en rester la...

Je viens de tester et cela marche bien à condition de modifier en conséquence le fichier js

Tout d'abord plusieurs remarques
- Les fichiers .css contiennent plusieurs erreurs, une bonne adresse de test Le service de validation CSS du W3C
- La fonction createCookie M...E il manque un ;
    document.cookie = name +"=" +value +"
; " +expires +"; path =/";

Revenons au code, il te faut donc le faire evoluer pour récuperer le document de la frame
Je te livre les fonctions modifiées en espérant qu'il n'y ai pas de problème d'affichage
//---------------------------------
function setActiveStyleSheet(title){
  var Doc = parent.frames['GAUCHE'].document;
  var a = Doc.getElementsByTagName("link");
  var i;
  for( i=0; i < a.length; i++) {
    if(a[i].getAttribute("rel").indexOf("style") != -1 && a[i].getAttribute("title")){
      a[i].disabled = true;
      if(a[i].getAttribute("title") == title) a[i].disabled = false;
    }
  }
}



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






function getActiveStyleSheet(){
  var Doc = parent.frames['



GAUCHE



'].document;
  var a = Doc.getElementsByTagName("link");
  var i;
  for( i=0; i < a.length; i++) {
    if(( a[i].getAttribute("rel").indexOf("style") != -1) &&
       ( a[i].getAttribute("title")) &&
       (!a[i].disabled))
       return a[i].getAttribute("title");
  }
  return null;
}





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






function getPreferredStyleSheet(){
  var Doc = parent.frames['



GAUCHE



'].document;
  var a = Doc.getElementsByTagName("link");
  var i;
  for( i=0; i < a.length; i++) {
    if(( a[i].getAttribute("rel").indexOf("style") != -1) &&
       ( a[i].getAttribute("rel").indexOf("alt") == -1) &&
       ( a[i].getAttribute("title")))
       return a[i].getAttribute("title");
  }
  return null;
}

Pour ce qui est de l'effet MOCHE c'est un problème plutôt lié au fond de couleur
Voila c'est tout...
Bonne continuation quand même...

Attention : Ce coucher tard Nuit comme disait Raymond DEVOS







;0)
0
Rejoignez-nous