Problème d'1 menu par listes déroulantes
Goldjoker
-
jim -
jim -
J'en peut plus, je but sur se problème qui parrait si simple et que pourtant je ne métrise pas.Sur mon site je souhaite avoir comme index, 4 listes déroulantes l'une à coté de l'autre. Le problème c'est que mes listes lorsque l'on clique sur un des liens sa créer une nouvelle fenêtre comme si j'utilisais "target=_top", alors que moi je voudrais que les pages web appelées apparaissent pour certaines dans une frame nommée: bas et d'autre dans des autres frames.
Si quelqu'un peut corriger ma page dont je fais figurer la totalité des codes qui la compose si dessous, sa m'aiderais beaucoup car je bloque vraiment, merci:
<xmp>
<html>
<head>
<title>cadre3</title>
<META content="text/html; charset=windows-1252" http-equiv=Content-Type>
<META content="" name=Description>
<META content="" name=Keywords>
<STYLE type=text/css>A.spray {
COLOR: #000000; FONT-FAMILY: Verdana,Geneva, Arial; TEXT-DECORATION: underline
}
A.spray:hover {
COLOR: #000000; FONT-FAMILY: Verdana,Geneva, Arial; TEXT-DECORATION: none
}
FONT.verd {
COLOR: #000000; FONT-FAMILY: Verdana,Geneva, Arial; FONT-SIZE: 10px
}
SELECT.sel {
FONT-FAMILY: Verdana,Geneva, Arial; FONT-SIZE: 10px; HEIGHT: 18px
}
INPUT.inp {
FONT-FAMILY: Verdana,Geneva, Arial; FONT-SIZE: 10px; HEIGHT: 18px
}
</STYLE>
<SCRIPT language=javascript>
<!--
function sendToURL(url) {
if (url!="x") {
window.open(url)
}
}
//-->
</SCRIPT>
</HEAD>
<BODY aLink="black" bgColor="black" leftMargin=0 link="black"
style="MARGIN: 0px; PADDING-BOTTOM: 0px; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; PADDING-TOP: 0px"
topMargin=0 vLink="black" marginheight="0" marginwidth="0">
<TABLE bgColor="black" border=0 cellPadding=0 cellSpacing=0 width="100%">
<TBODY>
<TR>
<TD align=left vAlign=center>
<TABLE border=0 cellPadding=0 cellSpacing=0 width=780>
<TBODY>
<TR>
<TD vAlign=center width=150>
<P align=center><b><font face="arial,helvetica" size=5 color="white"> T</font><font face="arial,helvetica" size=3 color="white">ITRE</font></b></P></TD>
<FORM>
<TD align=middle vAlign=center width=150>
<P align=center><FONT class=verd>
<SELECT class=sel name=images
onchange=sendToURL(this.options[this.selectedIndex].value)>
<OPTION selected value=x>informations<OPTION
value=x>------------------<OPTION
value=page1.htm>page1<OPTION
value=page2.htm>page2<OPTION
value=page3.htm>page3<OPTION
value=page4.htm>page4<OPTION
value=page5.htm>page5<OPTION
value=x></OPTION></SELECT> </FONT></P></TD>
<TD align=middle vAlign=center width=140>
<P align=center><FONT class=verd>
<SELECT class=sel name=humor
onchange=sendToURL(this.options[this.selectedIndex].value)>
<OPTION selected value=x>selection de sites<OPTION
value=x>------------------<OPTION
value=page6.htm>page6<OPTION
value=page7.htm>page7<OPTION
value=x></OPTION></SELECT> </FONT></P></TD>
<TD align=middle vAlign=center width=130>
<P align=center><FONT class=verd>
<SELECT class=sel name=multi
onchange=sendToURL(this.options[this.selectedIndex].value)>
<OPTION selected value=x>nos services<OPTION
value=x>------------------<OPTION
value=page8.htm>page8<OPTION
value=page9.htm>page9<OPTION
value=page10.htm>page10<OPTION
value=x></OPTION></SELECT> </FONT></P></TD>
<TD vAlign=center width=130>
<P align=center><FONT class=verd>
<SELECT class=sel name=other
onchange=sendToURL(this.options[this.selectedIndex].value)>
<OPTION selected value=x>autres<OPTION
value=x>------------------<OPTION
value=page11.htm>page11<OPTION
value=page12.htm>page12<OPTION
value=page13.htm>page13<OPTION
value=x></OPTION></SELECT> </FONT></P></TD>
</TR></FORM></TBODY></TABLE></TD>
<TR>
<TD bgColor=#000000 height=1><IMG height=1 src=""
width=1></TD></TR></TBODY></TABLE>
</BODY></HTML>
</xmp>
Si quelqu'un peut corriger ma page dont je fais figurer la totalité des codes qui la compose si dessous, sa m'aiderais beaucoup car je bloque vraiment, merci:
<xmp>
<html>
<head>
<title>cadre3</title>
<META content="text/html; charset=windows-1252" http-equiv=Content-Type>
<META content="" name=Description>
<META content="" name=Keywords>
<STYLE type=text/css>A.spray {
COLOR: #000000; FONT-FAMILY: Verdana,Geneva, Arial; TEXT-DECORATION: underline
}
A.spray:hover {
COLOR: #000000; FONT-FAMILY: Verdana,Geneva, Arial; TEXT-DECORATION: none
}
FONT.verd {
COLOR: #000000; FONT-FAMILY: Verdana,Geneva, Arial; FONT-SIZE: 10px
}
SELECT.sel {
FONT-FAMILY: Verdana,Geneva, Arial; FONT-SIZE: 10px; HEIGHT: 18px
}
INPUT.inp {
FONT-FAMILY: Verdana,Geneva, Arial; FONT-SIZE: 10px; HEIGHT: 18px
}
</STYLE>
<SCRIPT language=javascript>
<!--
function sendToURL(url) {
if (url!="x") {
window.open(url)
}
}
//-->
</SCRIPT>
</HEAD>
<BODY aLink="black" bgColor="black" leftMargin=0 link="black"
style="MARGIN: 0px; PADDING-BOTTOM: 0px; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; PADDING-TOP: 0px"
topMargin=0 vLink="black" marginheight="0" marginwidth="0">
<TABLE bgColor="black" border=0 cellPadding=0 cellSpacing=0 width="100%">
<TBODY>
<TR>
<TD align=left vAlign=center>
<TABLE border=0 cellPadding=0 cellSpacing=0 width=780>
<TBODY>
<TR>
<TD vAlign=center width=150>
<P align=center><b><font face="arial,helvetica" size=5 color="white"> T</font><font face="arial,helvetica" size=3 color="white">ITRE</font></b></P></TD>
<FORM>
<TD align=middle vAlign=center width=150>
<P align=center><FONT class=verd>
<SELECT class=sel name=images
onchange=sendToURL(this.options[this.selectedIndex].value)>
<OPTION selected value=x>informations<OPTION
value=x>------------------<OPTION
value=page1.htm>page1<OPTION
value=page2.htm>page2<OPTION
value=page3.htm>page3<OPTION
value=page4.htm>page4<OPTION
value=page5.htm>page5<OPTION
value=x></OPTION></SELECT> </FONT></P></TD>
<TD align=middle vAlign=center width=140>
<P align=center><FONT class=verd>
<SELECT class=sel name=humor
onchange=sendToURL(this.options[this.selectedIndex].value)>
<OPTION selected value=x>selection de sites<OPTION
value=x>------------------<OPTION
value=page6.htm>page6<OPTION
value=page7.htm>page7<OPTION
value=x></OPTION></SELECT> </FONT></P></TD>
<TD align=middle vAlign=center width=130>
<P align=center><FONT class=verd>
<SELECT class=sel name=multi
onchange=sendToURL(this.options[this.selectedIndex].value)>
<OPTION selected value=x>nos services<OPTION
value=x>------------------<OPTION
value=page8.htm>page8<OPTION
value=page9.htm>page9<OPTION
value=page10.htm>page10<OPTION
value=x></OPTION></SELECT> </FONT></P></TD>
<TD vAlign=center width=130>
<P align=center><FONT class=verd>
<SELECT class=sel name=other
onchange=sendToURL(this.options[this.selectedIndex].value)>
<OPTION selected value=x>autres<OPTION
value=x>------------------<OPTION
value=page11.htm>page11<OPTION
value=page12.htm>page12<OPTION
value=page13.htm>page13<OPTION
value=x></OPTION></SELECT> </FONT></P></TD>
</TR></FORM></TBODY></TABLE></TD>
<TR>
<TD bgColor=#000000 height=1><IMG height=1 src=""
width=1></TD></TR></TBODY></TABLE>
</BODY></HTML>
</xmp>
A voir également:
- Problème d'1 menu par listes déroulantes
- Menu déroulant excel - Guide
- Excel menu déroulant en cascade - Guide
- Canon quick menu - Télécharger - Utilitaires
- Menu déroulant google sheet - Accueil - Guide bureautique
- Windows 11 menu démarrer classique - Guide
2 réponses
Slt Goldjoker,
Le pb se situe au niveau de ta fonction sendToUrl()
La méthode window.open() va forcément ouvrir une nouvelle fénêtre avec l'url indiquée de la façon dont tu t'en sers.
Rappel : window.open([url [,name [,features [,replace]]]])
Pour éviter ce genre de désagément tu dois trouver un moyen d'indiquer explicitement le nom de la fenêtre dans laquelle dans tu veux charger ta page, cad donner une valeur au paramètre
"name".
Ce qui précéde implique naturellement que la fenêtre de destination existe déjà.
Si tu utilises les frames tu as déjà tout ce qu'il te faut :
Alors voilà je considére que j'ai une page avec 2 cadres le premier que j'appelle "menu" et dans lequel je charge ton code ci-dessus et une autre que j'appelle "bas" et c'est vers celle-ci que je redirige toutes les pages : bref je pilote le contenu du cadre "bas" à partir des listes du cadre "menu". C'est bien ce que tu veux faire ?
Le nom de la page html qui contient les cadres n'intervient pas ici.
Et voici les corrections qu'il te reste à apporter à ton code :
1 ère solution :
function sendToURL(url) {
if (url!="x") {
window.open(url,"bas");
}
}
Je ne sais pas par quel moyen le navigateur arrive à retrouver le fenêtre "bas" mais il la connait, surement à cause du fait qu'on a chargé la page avec les cadres.
Enfin tjrs est-il que ça marche avec IE :-)
2 ème solution (ma préférée car + claire) :
function sendToURL(url) {
if (url!="x") {
window.parent.bas.location.href=url;
}
Ici on utilise la propriété .parent de la fenêtre en cours qui renvoie d'habitude la fenêtre elle-même. Mais avec les cadres c'est la fenêtre qui contient la description du jeu de cadres qui est retournée.
Donc une fois qu'on est dans la fenêtre des cadres on a accès au nom des cadres, ici "bas".
window.parent : pointe vers la fenêtre contenant le jeu de cadres
window.parent.bas : pointe vers la fenêtre "bas"
On peut ensuite accèder tout naturellement à ttes les propriétés et ts les objets de la fenêtre "bas".
Et c'est ce qu'on fait en modifiant la propriété href de l'objet location de la fenêtre "bas".
Voilà pourquoi je préfère cette technique. On suit bien mieux le cheminement au lieu du mot "bas" qui sort dont ne sait où ...
Nota : tu peux également modifier le contenu de plusieurs cadres en même tps.
Par ex :
function sendToURL(url1,url2) {
if (url1!="x") {
window.parent.bas.location.href=url2;
}
if (url2!="x") {
window.parent.gauche.location.href=url2;
}
}
Et il n'y a plus de limite ... Cool :-)
J'ai détaillé car j'ai horreur qu'on me balance une solution comme çà toute faite, sous-entendu tu mets ce code ci, ça marche, mais pour les explications "démerde toi".
Enfin choisi la solution que tu préfères.
@+
Le pb se situe au niveau de ta fonction sendToUrl()
La méthode window.open() va forcément ouvrir une nouvelle fénêtre avec l'url indiquée de la façon dont tu t'en sers.
Rappel : window.open([url [,name [,features [,replace]]]])
Pour éviter ce genre de désagément tu dois trouver un moyen d'indiquer explicitement le nom de la fenêtre dans laquelle dans tu veux charger ta page, cad donner une valeur au paramètre
"name".
Ce qui précéde implique naturellement que la fenêtre de destination existe déjà.
Si tu utilises les frames tu as déjà tout ce qu'il te faut :
Alors voilà je considére que j'ai une page avec 2 cadres le premier que j'appelle "menu" et dans lequel je charge ton code ci-dessus et une autre que j'appelle "bas" et c'est vers celle-ci que je redirige toutes les pages : bref je pilote le contenu du cadre "bas" à partir des listes du cadre "menu". C'est bien ce que tu veux faire ?
Le nom de la page html qui contient les cadres n'intervient pas ici.
Et voici les corrections qu'il te reste à apporter à ton code :
1 ère solution :
function sendToURL(url) {
if (url!="x") {
window.open(url,"bas");
}
}
Je ne sais pas par quel moyen le navigateur arrive à retrouver le fenêtre "bas" mais il la connait, surement à cause du fait qu'on a chargé la page avec les cadres.
Enfin tjrs est-il que ça marche avec IE :-)
2 ème solution (ma préférée car + claire) :
function sendToURL(url) {
if (url!="x") {
window.parent.bas.location.href=url;
}
Ici on utilise la propriété .parent de la fenêtre en cours qui renvoie d'habitude la fenêtre elle-même. Mais avec les cadres c'est la fenêtre qui contient la description du jeu de cadres qui est retournée.
Donc une fois qu'on est dans la fenêtre des cadres on a accès au nom des cadres, ici "bas".
window.parent : pointe vers la fenêtre contenant le jeu de cadres
window.parent.bas : pointe vers la fenêtre "bas"
On peut ensuite accèder tout naturellement à ttes les propriétés et ts les objets de la fenêtre "bas".
Et c'est ce qu'on fait en modifiant la propriété href de l'objet location de la fenêtre "bas".
Voilà pourquoi je préfère cette technique. On suit bien mieux le cheminement au lieu du mot "bas" qui sort dont ne sait où ...
Nota : tu peux également modifier le contenu de plusieurs cadres en même tps.
Par ex :
function sendToURL(url1,url2) {
if (url1!="x") {
window.parent.bas.location.href=url2;
}
if (url2!="x") {
window.parent.gauche.location.href=url2;
}
}
Et il n'y a plus de limite ... Cool :-)
J'ai détaillé car j'ai horreur qu'on me balance une solution comme çà toute faite, sous-entendu tu mets ce code ci, ça marche, mais pour les explications "démerde toi".
Enfin choisi la solution que tu préfères.
@+