Page 1 sur 1

Erreur sur la page: la variable a la valeur Null

Posté : 20 oct. 2006, 03:49
par Nico128
Salut tout le monde !

J'ai un léger problème. J'avais trouvé un petit script sur le net pour faire un "menu". Quand on coche une checkbox un menu en dessou apparait.

Voilà :
<style>
span.menu { display: block; }
span.ferme {display: none;}
</style>
<script>
function twAjusteMenu(id) {
// Compatible IE et famille Mozilla/Netscape et Safari
// Incompatible mais utilisable avec Netscape 4.7 et Opera !!
element = document.getElementById(id);
element.className = (element.className.toLowerCase() == 'menu'?'ferme':'menu'); 
}

onload = function() {
twAjusteMenu('sousmenu1');
twAjusteMenu('sousmenu2');

// Recherche News
twAjusteMenu('sousmenu3');
twAjusteMenu('sousmenu4');
twAjusteMenu('sousmenu5');
twAjusteMenu('sousmenu6');
}
</script>
Ensuite le menu c'est :
<span class="ferme" id="sousmenu1">   </span>
Aucun problème, tout fonctione ! Le petit problème c'est que lorsque je suis sur une page qui contient pas ce menu (mais qui a quand même la fonction) IE me dit qu'il y a une erreur sur la page :
'element' a la valeur Null ou n'est pas un objet
Bon j'avoue que c'est pas très grave, mais j'aime bien avoir une page propre sans erreur ^^

La seule solution que j'ai trouvé, c'est de mettre les menu sur chaque page comme ça 'element' n'est plus null :
<span class="ferme" id="sousmenu1"> </span>
<span class="ferme" id="sousmenu2"> </span>
<span class="ferme" id="sousmenu3"> </span>
<span class="ferme" id="sousmenu4"> </span>
<span class="ferme" id="sousmenu5"> </span>
<span class="ferme" id="sousmenu6"> </span>
Pas très joli tout ça ^^ J'y connais pas grand chose en javascript. C'est pourquoi je poste ici, pour vous demandé si il n'y aurait pas une autre solution qui serait plus sympa quand même ?

Merci d'avance :D

Posté : 20 oct. 2006, 04:07
par Ajoloca
Bonsoir,

Quelle est la raison d'être de la fonction s'il n'y-a pas de menu, vu que la foction ne gère que le menu?

Posté : 20 oct. 2006, 15:41
par Ryle
Tu peux aussi vérifier l'existance du menu en question lors de l'appel à la fonction :

Code : Tout sélectionner

function twAjusteMenu(id) { element = document.getElementById(id); if(element) // seulement si l'élément id existe element.className = (element.className.toLowerCase()== 'menu'?'ferme':'menu'); }
if(document.getElementById(id)) va renvoyer faux si l'élément n'existe pas, le code suivant ne sera pas exécuté et tu n'auras pas de message d'erreur :)

Posté : 20 oct. 2006, 22:27
par Nico128
Bonsoir,

Quelle est la raison d'être de la fonction s'il n'y-a pas de menu, vu que la foction ne gère que le menu?
Parce que le script est dans la page index.php. Ensuite avec les lien index.php?page=blabla j'inclu des page.

Donc dans certaine page que j'inclu il y a des menu, mais pour les autres, y'en a pas ^^

Ryle, merci ça marche ! J'avais essayé mais aparament j'avais fait une erreur de syntaxe :D

:D