[java/CSS] incompatibilité IE !?

incompatibilité IE !? [java/CSS] - HTML/CSS - Programmation

Marsh Posté le 09-02-2005 à 14:30:58    

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 :
  1. <a href="#" onclick="setActiveStyleSheet('default'); return false;">blabla</a>


 
- le .js :  

Code :
  1. function setActiveStyleSheet(title)
  2. {
  3. var i, a, main;
  4. for(i=0; (a = document.getElementsByTagName("link" )[i]); i++)
  5. {
  6.  if(a.getAttribute("rel" ).indexOf("style" ) != -1 && a.getAttribute("title" ))
  7.  {
  8.   a.disabled = true;
  9.   if(a.getAttribute("title" ) == title) a.disabled = false;
  10.  }
  11. }
  12. }
  13. function getActiveStyleSheet()
  14. {
  15. var i, a;
  16. for(i=0; (a = document.getElementsByTagName("link" )[i]); i++)
  17. {
  18.  if(a.getAttribute("rel" ).indexOf("style" ) != -1 && a.getAttribute("title" ) && !a.disabled) return a.getAttribute("title" );
  19. }
  20. return null;
  21. }
  22. function getPreferredStyleSheet()
  23. {
  24. var i, a;
  25. for(i=0; (a = document.getElementsByTagName("link" )[i]); i++)
  26. {
  27.  if(a.getAttribute("rel" ).indexOf("style" ) != -1 && a.getAttribute("rel" ).indexOf("alt" ) == -1 && a.getAttribute("title" )) return a.getAttribute("title" );
  28. }
  29. return null;
  30. }
  31. function createCookie(name,value,days) {
  32. if (days)
  33. {
  34.  var date = new Date();
  35.  date.setTime(date.getTime()+(days*24*60*60*1000));
  36.  var expires = "; expires="+date.toGMTString();
  37. }
  38. else expires = "";
  39. document.cookie = name+"="+value+expires+"; path=/";
  40. }
  41. function readCookie(name)
  42. {
  43. var nameEQ = name + "=";
  44. var ca = document.cookie.split(';');
  45. for(var i=0;i < ca.length;i++)
  46. {
  47.  var c = ca[i];
  48.  while (c.charAt(0)==' ') c = c.substring(1,c.length);
  49.  if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
  50. }
  51. return null;
  52. }
  53. window.onload = montre;
  54. window.onload = function(e)
  55. {
  56. var cookie = readCookie("style" );
  57. var title = cookie ? cookie : getPreferredStyleSheet();
  58. setActiveStyleSheet(title);
  59. }
  60. function montre(id)
  61. {
  62. var d = document.getElementById(id);
  63. for (var i = 1; i<=10; i++)
  64. {
  65.  if (document.getElementById('smenu'+i)) {document.getElementById('smenu'+i).style.display='none';}
  66. }
  67. if (d) {d.style.display='block';}
  68. }
  69. window.onunload = function(e)
  70. {
  71. var title = getActiveStyleSheet();
  72. createCookie("style", title, 365);
  73. }
  74. var cookie = readCookie("style" );
  75. var title = cookie ? cookie : getPreferredStyleSheet();
  76. setActiveStyleSheet(title);


 
-la div qui ne s'affiche pas sous IE :

Code :
  1. .cadremenu {
  2.    position: absolute;
  3.    width: 77.8%;
  4.    height: 19.9%;
  5.    top: 5%;
  6.    right: 1%;
  7.    border: solid #000000 1px;
  8.    background: url(images/fondhaut.jpg) bottom right no-repeat;
  9.   }


 
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 :
  1. <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)
Reply

Marsh Posté le 09-02-2005 à 14:30:58   

Reply

Marsh Posté le 09-02-2005 à 18:52:10    

Tu as deja un probleme :

Citation :


 window.onload = montre;
 window.onload = function(e)
[...]


Lors de la 2e affectation tu va "effacer" l'appel a la fonction montre.
De plus, montre prends un argument, et la 2 fonction aussi. Il faut que tu sache que les fonctions appelees par onload ne recoivent aucun argument, il faut donc qu'elles puissent fonctionner correctement sans arguments.

Reply

Marsh Posté le 10-02-2005 à 09:42:38    

merci
comme quoi il faut pas toujours faire confiance aux tutos !!
je vais tenter de corriger ça !


---------------
"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)
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed