11548 sujets

JavaScript, DOM et API Web HTML5

Bonjour,

J'ai pu lire sur divers posts de ce forum des utilisateurs souhaitant afficher si JS est désactivé ou pas.
En ce qui me concerne, j'ai un autre problème :

J'ai un fichier javascript qui permet d'afficher le sous-menu d'un menu sur lequel on place sa souris. En gros, on appelle la fonction à l'ouverture de la fenêtre et ensuite on cache/montre les éléments par un getelementbyId(Id) avec l'Id correspondant à un sous menu dans le fichier d'index. Bon je sais... c'est pas clair, alors voilà le code source pour comprendre

Menu JS :


window.onload=montre; // au démarage, on appelle montre sans arguments
		
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';
		}
	}


et voici le code d'un sous-menu, dans l'index :


<dt onmouseover="javascript:montre('smenu3');" onmouseout="javascript:montre();"><a href="">Vie au lycée</a></dt>
						<dd id="smenu3" onmouseover="javascript:montre('smenu3');" onmouseout="javascript:montre();">
							<ul>
								<li><a href="index.php?page=index">Calendrier</a></li> <!--Agenda-->
								<li><a href="index.php?page=CDI">C.D.I</a></li> <!--Photo du CDI-->
								<li><a href="index.php?page=reglement">Règlement intérieur</a></li> <!--Reglement interieur-->
							</ul>
						</dd>



Le problème est que lorsque le js est désactivé, tous les sous-menus s'affichent sur la page d'index comme des éléments à part entière de celle-ci... Je précise que des liens vers ces sous-menu à été faits lorsque l'on clique sur leur menu, de sorte que les informations données lors du clic sur les sous-menus soit quand même accessibles si ceux-ci sont désactivés.

Pensez-vous qu'il soit possible de faire quelque chose pour que ces sous-menus n'apparaissent pas si le js est désactivé ?

Merci pour vos réponses,

Killaman
Modifié par Killaman (04 Jun 2007 - 15:35)
Salut,

J'avoue personnellement ne pas tout saisir (un lien vers une page "live" est toujours très bienvenu pour comprendre concrètement un problème).
a écrit :
Pensez-vous qu'il soit possible de faire quelque chose pour que ces sous-menus n'apparaissent pas si le js est désactivé ?

Comme je n'ai pas tout compris, je vais certainement taper à côté mais bon : avec un {display:none} dans ta feuille de styles, tes sous-menus n'apparaitront pas, que JS soit activé ou non.

Smiley murf
Modifié par marcv (04 Jun 2007 - 23:02)
Salut,

moi ce qui me fait m'interroger c'est pourquoi veux tu qu'il ne soit pas là quand le js est désactivé?

Le but de ce script était justement d'offrir un plus en accessibilité car la navigation reste possible pour les utilisateurs qui n'ont pas js.

- soit gerer le sous-menu d'une maniere classique avec les evenements onmouseover et onmouseout.

mais plus aucune navigation ne sera possible sans js.

- soit autre piste accessible mais reine incontestée du rechargemment de page. gerer son menu coté serveur avec php.
pascal
Modifié par CPascal (04 Jun 2007 - 23:39)
En fait, si le javascript n'est pas activé, les sous-menus s'affichent quand même, mais tous ! Ce qui donne un gros paté de sous-menus Smiley biggrin

Constatez par vous même : lycée saint joseph de cluny

Je suis obligé d'utiliser un menu javascript, selon les exigence de mon responsable...
Re-salut,

Ta question (quelque peu déconcertante Smiley biggrin ) est la suivante si j'ai bien compris (et ça j'en suis pas sûr Smiley sweatdrop ) :
Killaman a écrit :
Pensez-vous qu'il soit possible de faire quelque chose pour que ces sous-menus n'apparaissent pas si le js est désactivé ?

Je t'ai répondu
marcv a écrit :
avec un {display:none} dans ta feuille de styles, tes sous-menus n'apparaitront pas.

CPascal a répondu, justement, qu'en continuant sur cette voie
CPascal a écrit :
plus aucune navigation ne sera possible sans js.

Quel aide supplémentaire souhaites-tu ?
Modifié par marcv (06 Jun 2007 - 21:01)
j'ai bien compris e qu'il veut dire; le menu permet de mettre un lien vers une page dans le sous-menu, mais aussi dans le menu.
Donc si tu as un menu de ce type:
a écrit :
- thème1:
lien1
lien2
lien3
- thème2:
lien1
lien2
- thème3:
lien1
lien2


=> sans JS sans montrer les sous-menus: en effet on verras que le nom des thèmes sans liens ce qui ne sert à rien.
=> maintenant si pour chaque thème tu mets un lien vers une page "sommaire du thème", le fait de ne pas avoir les sous-menus affichés n'est pas génant puisqu'en cliquant sur le thème on arrive sur une page présentant certainement les liens qui ne s'étaient pas affichés!

L'idée n'est pas mauvaise du tout car règle pas mal de soucis ergonimiques pour ceux qui n'ont pas le JS d'activé.
Donc si c'est faisable je suis assé interressé...