Hi all,
Dans le haut de la page d'accueil de mon site, j'ai 3 petits liens qui me permettent de choisir un style d'affichage. En cliquant sur l'un de ses liens je fais changer l'apparence des pages en pointant sur différentes CSS! (j'imagine que tout le monde avait compris). J'ai utilisé une méthode via js pour obtenir ceci.
En dessous de ces liens j'ai une div dans laquelle j'ai mis un menu en js.
Et tout marche bien !!
C'est là que vous vous dites "mais qu'est ce qu'il vient nous gonfler si ça marche" et bien je vais vous dire pourquoi !! Tout marche nickel mais sous Firefox !! Sous IE ça marche pas !
Je vous post un peu de code pour aider à la compréhension :
- un des liens pour changer l'apparence :
Code :
- <a href="#" onclick="setActiveStyleSheet('default'); return false;">blabla</a>
|
- le .js :
Code :
- 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 = montre;
- window.onload = function(e)
- {
- var cookie = readCookie("style" );
- var title = cookie ? cookie : getPreferredStyleSheet();
- setActiveStyleSheet(title);
- }
- function montre(id)
- {
- var d = document.getElementById(id);
- for (var i = 1; i<=10; i++)
- {
- if (document.getElementById('smenu'+i)) {document.getElementById('smenu'+i).style.display='none';}
- }
- if (d) {d.style.display='block';}
- }
- window.onunload = function(e)
- {
- var title = getActiveStyleSheet();
- createCookie("style", title, 365);
- }
- var cookie = readCookie("style" );
- var title = cookie ? cookie : getPreferredStyleSheet();
- setActiveStyleSheet(title);
|
-la div qui ne s'affiche pas sous IE :
Code :
- .cadremenu {
- position: absolute;
- width: 77.8%;
- height: 19.9%;
- top: 5%;
- right: 1%;
- border: solid #000000 1px;
- background: url(images/fondhaut.jpg) bottom right no-repeat;
- }
|
et vous trouverez le code pour mon menu dans ce meme js
- un des liens du menu qui est dans la div qui ne s'affiche pas :
Code :
- <li><a href="indexfr.php?gauche=formations&droite=diagramme">Formations</a></li>
|
donc voila voila
si vous avez une idée !!
merci bien
---------------
"Il vaut mieux se taire et passer pour un con plutôt que de parler et de ne laisser aucun doute à ce sujet." (Pierre Desproge)