Menu dynamique

21pc Messages postés 2 Date d'inscription mardi 15 février 2011 Statut Membre Dernière intervention 16 février 2011 - 15 févr. 2011 à 15:43
@karamel Messages postés 1855 Date d'inscription vendredi 9 mai 2008 Statut Modérateur Dernière intervention 18 avril 2024 - 16 févr. 2011 à 15:42
Bonjour
j'ai adapté un script pour un menu perso mais il ouvre un site avec chaque option. Est-il possible de le modifier pour ouvrir directement une autre page de mon site ?
par exemple ouvrir une page concernant l'Italie et pas un site comme "http://www.google.com"
Merci de votre aide

<!-- saved from url= (0022)http://internet.e-mail -->
<script language="JavaScript" type="text/javascript">
//<![CDATA[

// Script développé par Tout JavaScript.com - http://www.toutjavascript.com

var menu=new CreerMenu(3,"1 - Choix catégorie","2 - choix sujet","3 -choix détails ","titre 4","_blank");
// CreerMenu(Nb de listes, titre1, titre2, titre3, target)
// Nb listes=4 maxi
// Les 4 titres sont obligatoires (meme si Nb_liste<4)
// target=nom de la frame ou "self" si c'est la fenetre elle meme, "_blank" pour une nouvelle
// Pour ajouter les liens dans les listes, utiliser menu.Add
// Menu.Add(numéro de la liste, texte, page à charger)
menu.Add(1,"choix1","");
menu.Add(2,"voyages","");
menu.Add(3,"Italie","http://www.google.com");
menu.Add(3,"Espagne","http://www.google.com");
menu.Add(3,"suisse","http://www.yahoo.fr");
menu.Add(2,"Musique","");
menu.Add(3,"rock","http://www.google.com");
menu.Add(3,"salsa","http://www.google.com");
menu.Add(3,"hip hop","http://www.google.com");


menu.Add(1,"choix2","");
menu.Add(2,"livres","");
menu.Add(3,"livre1","http://www.google.com");
menu.Add(3,"livre2","http://www.google.com");
menu.Add(3,"livre3","http://www.google.com");
menu.Add(2,"expositions","");
menu.Add(3,"expo Monnet","http://www.google.com");
menu.Add(3,"Expo Picasso","http://www.google.com");



function CreerMenu(profondeur,titre1,titre2,titre3,titre4,target) {
this.nb=0;this.prof=profondeur;
this.titre1=titre1; this.titre2=titre2; this.titre3=titre3; this.titre4=titre4; this.target=target
this.Add=AddObjet;
this.Aff=AffMenu;
}
function AddObjet(deep,txt,page) {
var rub = new Object;
rub.deep=deep;
rub.txt=txt;
rub.page=page;
this[this.nb]=rub;
this.nb++;
}
function AffMenu() {
var Z="<FORM name='mf'>";
Z+="<SELECT size=1 name='list1' onChange='Clic(1)'><OPTION selected>"+this.titre1+"<\/OPTION>";
for (var i=0;i<this.nb;i++) {
if (this[i].deep==1) {
Z+="<OPTION value='"+i+"'>"+this[i].txt+"<\/OPTION>"
}
}
Z+="<\/SELECT>";
for (var i=2;i<=menu.prof;i++) {
Z+="<SELECT name='list"+i+"' onChange='Clic("+i+")'><OPTION>"+eval("menu.titre"+i)+"<\/OPTION><OPTION><\/OPTION><OPTION><\/OPTION><OPTION><\/OPTION><OPTION><\/OPTION><OPTION><\/OPTION><\/SELECT>";
}
Z+="<\/FORM>";
document.write(Z);
}
function add() {
var c=new Option("ADD","",true,true);
document.forms[0].elements["list"].options[0]=c;
}
function Clic(no) {
var valeur=document.forms["mf"].elements["list"+no].options[ document.forms["mf"].elements["list"+no].selectedIndex].value;
if ((valeur!="")&&(valeur!=null)&&(no<menu.prof)) {
var deep=menu[valeur].deep;
var no2=1;
for (var noX=(no+1);noX<=menu.prof;noX++) {
document.forms["mf"].elements["list"+eval(noX)].options.length=0;
var titre=eval("menu.titre"+noX);
var c=new Option(titre);
document.forms["mf"].elements["list"+(noX)].options[0]=c;
document.forms["mf"].elements["list"+(noX)].selectedIndex=0;
}
valeur++;
for (var i=valeur;i<menu.nb;i++) {
//alert(i);
if (menu[i].deep==deep+1) {
//alert("no="+no+" texte="+menu[i].txt);
var c=new Option(menu[i].txt,i);
document.forms["mf"].elements["list"+(no+1)].options[no2]=c;
no2++;
} else { if (menu[i].deep==deep){i=menu.nb;}}
}
document.forms["mf"].elements["list"+(no+1)].options.length=no2+1;
document.forms["mf"].elements["list"+(no+1)].selectedIndex=0;
Clic(no+1)
valeur--;
}
if ((valeur!="")&&(valeur!=null)) {
var page=menu[valeur].page;
if ((page!="")&&(page!=null)) {
if (menu.target=="self") {window.location=page}
else if (menu.target=="_blank") {window.open(page,"","menubar,scrollbars,toolbar,status,location")}
else {parent.frames[menu.target].location.href=page;}
}
}
}
// Fonctions destinées à afficher l'arborescence du menu
function space(i) {var Z="";for (var j=0;j"+m[i].page+"<\/A>
"
}
document.write(Z);
}
// Section utile pour la démonstration

//]]>
</script>
<center>
Menu arborescent par listes déroulantes
</center>


<script language ="JavaScript" type="text/javascript">
//<![CDATA[

menu.Aff();
//]]>
</script> *** Vous pouvez trouver des livres relatifs aux différentes rubriques ***



Pour information, voici l'arborescence du menu complet :

<script language="JavaScript" type="text/javascript">
//<![CDATA[

// A supprimer : permet d'afficher sous forme de texte la liste complète des liens du menu
Arbo(menu);
//]]>
</script>

3 réponses

@karamel Messages postés 1855 Date d'inscription vendredi 9 mai 2008 Statut Modérateur Dernière intervention 18 avril 2024 153
15 févr. 2011 à 20:21
il suffit juste de modifier les liens par les tiens


menu.Add(1,"choix1","");
menu.Add(2,"voyages","");
menu.Add(3,"Italie","http://www.google.com");
menu.Add(3,"Espagne","http://www.google.com");
menu.Add(3,"suisse","http://www.yahoo.fr");
menu.Add(2,"Musique","");
menu.Add(3,"rock","http://www.google.com");
...
0
21pc Messages postés 2 Date d'inscription mardi 15 février 2011 Statut Membre Dernière intervention 16 février 2011
16 févr. 2011 à 12:49
effectivement merci pour les précisions mais je veux ouvrir seulement une page sans réouvrir le site http://www........
et en plus cela s'ouvre dans une autre fenêtre du navigateur alors que je voudrais que cela s'ouvre dans la fenêtre active...
si vous avez plus d'infos pour m'aider merci d'avance.
0
@karamel Messages postés 1855 Date d'inscription vendredi 9 mai 2008 Statut Modérateur Dernière intervention 18 avril 2024 153
16 févr. 2011 à 15:42
remplace blank par self comme il est precisé plus bas

var menu=new CreerMenu(3,"1 - Choix catégorie","2 - choix sujet","3 -choix détails ","titre 4","_blank");
// CreerMenu(Nb de listes, titre1, titre2, titre3, target)
// Nb listes=4 maxi
// Les 4 titres sont obligatoires (meme si Nb_liste<4)
// target=nom de la frame ou "self" si c'est la fenetre elle meme, "_blank" pour une nouvelle
// Pour ajouter les liens dans les listes, utiliser menu.Add
// Menu.Add(numéro de la liste, texte, page à charger)
0
Rejoignez-nous