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

BS0D

Membre d’élite
Club MacG
27 Juillet 2008
2 322
530
searchreplaceapp.com
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.
 
A

Anonyme

Invité
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). ;)
 

Schwarzer Stern

Membre confirmé
13 Décembre 2007
243
8
France
www.symphozik.info
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.
 

BS0D

Membre d’élite
Club MacG
27 Juillet 2008
2 322
530
searchreplaceapp.com
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:
 
A

Anonyme

Invité
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.