11548 sujets

JavaScript, DOM et API Web HTML5

bonjour,
j'ai un menu qui est géré en javascript, mais mon probleme s'est en fait :
quand je clique sur un des lien, la page correspondante à ce lien s'ouvre dans une autre page ou onglet de mon navigateur, alors que moi je souhaite qu'il s'ouvre dans la meme page ou meme onglet .
J'ai testé le script avec internet explorer et firefox .
Merci d'avance

voici le script du javascript :


gauche5=90
haut5=120
target5 = '_blank';

color51 = "#7788AA";
color52 = "#B8C8FE";
color53 = "#FFCC00";

menu5titre = new Array;
menu5lien = new Array;

	menu5titre[0]= 'T-shirt'
	menu5lien[0]= 'vetements-homme-t-shirt.html'
	menu5titre[1]= 'Chemise'
	menu5lien[1]= 'chemise-homme.html'
	menu5titre[2]= 'Pull / Sweat'
	menu5lien[2]= 'pull-sweat-homme.html'
	menu5titre[3]= 'Jean / Pantalon'
	menu5lien[3]= 'jean-pantalon-homme.html'
	menu5titre[4]= 'Costume / Veste'
	menu5lien[4]= 'costume-veste-homme.html'
	menu5titre[5]= 'Blouson / Manteau'
	menu5lien[5]= 'blouson-manteau-homme.html'
	menu5titre[6]= 'Chaussures'
	menu5lien[6]= 'chaussures-homme.html'
	menu5titre[7]= 'Accéssoires'
	menu5lien[7]= 'accessoires-homme.html'
	menu5titre[8]= 'Sous-Vêtements'
	menu5lien[8]= 'sous-vetements-homme.html'
document.write('<STYLE TYPE="text/css">#menu5 { position:absolute;top:'+haut5+';left:'+gauche5+'; }</STYLE>');

ie4=document.all
ns6=document.getElementById&&!document.all
ns4=document.layers

function placeMenu5() {
	setTimeout("placeMenu5()",1);
}

window.onload = placeMenu5;
document.write('<SPAN ID=menu5><table bgcolor=#7788AA border=1 cellspacing=1 cellpadding=3 bordercolorlight=#000000 bordercolordark=#C0C0C0 WIDTH=140><TR>	<TD ALIGN=center><FONT FACE="Verdana" SIZE=2 COLOR=#FFFFFF><U><B>T-shirt Homme</B></U></FONT></TD></TR>')
for(a=0;a<menu5lien.length;a++)
	{
	document.write('<TR><TD onMouseOut="this.style.background=\''+color51+'\'" onMouseOver="this.style.background=\''+color52+'\'" STYLE="cursor:hand" onClick="window.open(\''+menu5lien[a]+'\',\''+target5+'\')"><FONT FACE="Verdana, Arial" SIZE=1><B><A HREF="'+menu5lien[a]+'" TARGET="'+target5+'" STYLE="text-decoration:none;color:'+color53+'">'+menu5titre[a]+'</A></B></FONT></TD></TR>');
	}
document.write('</TR></TABLE></SPAN>')


Désolé, mais je suis novice en la matière .
Merci d'avance

totophe75
Modifié par totophe75 (13 Aug 2007 - 14:51)
Modérateur
Bonjour totophe75 et bienvenue parmi nous Smiley smile

En tant que modérateur, je me dois de te faire remarquer que tu n'as malheureusement pas respecté l'une des Règles de base du forum qui est d'afficher les codes et exemples proprement à l'aide des boutons [ code]... ici ton code HTML, CSS, PHP, etc.[ /code] (sans espace).

Je te remercie par avance de bien vouloir éditer ton message afin de le rendre conforme à cette règle. Smiley cligne

D'ailleurs, je rappelle que le lien qui apparaît en bandeau tout en haut du forum ("Nouveau sur le forum ?...") est important. Il contient des pistes de recherche, des indications sur les règles de vie de la communauté, etc.
Il serait courtois de ta part de bien vouloir en prendre connaissance.

upload/1-code.gif

Concernant ton problème, je vois que tu te sers d'un code... totalement obsolète Smiley confus :

- Les styles sont définis dans le JS ce qu'il faut éviter ; c'est le rôle de CSS donc il vaut mieux affecter une classe à tes éléments via la propriété className.

- La structure du menu est elle aussi définie dans le JS ; là, c'est le rôle du HTML car pour le moment, tous ceux qui ne disposent pas de Javascript ne peuvent pas naviguer sur ton site. Ce critère est vraiment très important dans l'aspect qualitatif du site. Smiley cligne

- Tu te sers de document.write rendant ainsi le JS intrusif. Ce n'est plus très à la mode depuis quelques années. Le mieux serait de prendre quelques cours de DOM :

http://nyams.planbweb.com/tutorial/dom/
http://pompage.net/pompe/separation/
http://css.alsacreations.com/Tutoriels-JavaScript/bonnes-pratiques-javascript

... pour apprendre à coder plus proprement.

- Tu te sers de tableaux de mise en page et de balises HTML obsolètes aussi. Si tu le souhaites, tu trouveras une foule de renseignements et tutos utiles sur ce site pour évoluer vers les standards :

http://css.alsacreations.com/Comment-debuter-et-trouver-l-information


Pour le fait que tes pages s'ouvrent dans une autre fenêtre ou onglet, c'est dû à l'attribut target que tu définies à _blank.

Bon courage pour la suite. Smiley smile
Ok merci pour toutes ces infos, alors j oublie ce script, et je vais me renseigner d'avantage et lire plus atentivement sur les sites que tu m'as donné .
Encore merci

totophe75