[JS] menu déroulant --> ouvrir les liens dans une même page

Nihonium

Membre expert
Club iGen
27 Juillet 2008
2 328
530
Bonjour,

J'ai trouvé ce code pour un menu déroulant en JS:

Bloc de code:
<script type="text/javascript" language="JavaScript">
function ouvrir(){
var index=document.forms[0].elements[0].options.selectedIndex;
if (index>0) {
var choix=document.forms[0].elements[0].options[index].value;
window.location (choix,"","");
}}</script>
Bloc de code:
<form action="" method=post>
<select name="" onchange=" ouvrir()">
<option value="#">____ LANGUAGE ____</option>
<option value="Eng.htm">English</option>
<option value="Fr.htm">Français</option>
</select>
</form>
Il se trouve qu'il ouvre les liens du menu déroulant ds une nouvelle page, savez-vous comment je peux modifier la fonction pour qu'ils s'ouvrent dans la même page ?

j'ai lu des trucs sur window.location au lieu de window.open, mais je ne sais pas comment paramétrer le reste de la fonction pour que ça fonctionne...


merci d'avance.
 
Il y moyen de faire des trucs avec ajax mais c'est déconseillé de rester sur la même page. En plus ton script est inaccessible (onchange). ;)
 
Il y moyen de faire des trucs avec ajax mais c'est déconseillé de rester sur la même page. En plus ton script est inaccessible (onchange). ;)

Ce script n'est pas de moi. Cela dit il marche très bien sur mon site.


Et comment ça "inaccessible (on change)" ?
 
Salut,
Essaie de remplacer la ligne :
window.location (choix,"","");
Par
window.open(choix,'_self');

Je sais, c'est pas propre, mais au point où on en est :)
Et "inaccessible" ça veut dire que sans JS, pas de menu, ce qui est un problème pour une minorité d'internautes mais également pour les moteurs de recherche.
 
Ah oui d'accord... bon vu le nombre de visites, ça sera pas un problème donc je m'en fous un peu ;)

ton truc est effectivement pas très propre, j'ai trouvé autre chose : remplacer
Bloc de code:
window.location (choix,"","");
par
Bloc de code:
window.location.href = choix;
Et ça marche nickel :up:
 
Et comment ça "inaccessible (on change)" ?

Pour les personnes naviguant au clavier (personnes aveugles, handicapées, etc), ils ne sauront pas utiliser le menu car l'évèvement onchange va directement charger la page sans pouvoir faire un choix. Bref c'est mieux de faire un menu plus un bouton submit et intercepter l'événement submit pour charger la page.

Pour ce qui est de remplacer la page ce n'est pas une bonne idée non plus car il est impossible de la mettre dans les favoris du navigateur.