begin process at 2012 02 13 06:38:12
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Javascript / DHTML / Ajax

 > 

JavaScript Orienté objet (POO)

 > 

Function & Méthodes

 > 

probleme avec document.writ()


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

probleme avec document.writ()

mercredi 21 mars 2007 à 20:21:48 | probleme avec document.writ()

neolin85

Bonsoir à tous,
Je souhaite construire un menu horizontal sauf que j'ai un soucis avec la méthode write de la classe document.
En fait, chaque fois que je clique sur un choix de menu la méthode write() m'affiche le sous-menu dans une autre page, chose qu'est tout à fais normal car l'instruction document.write() recharge une nouvelle page du coup, ça m'affiche le sous-menu dans une nouvelle page et non pas dans la page souhaitée.

Je vous invite a tester mon code.

Merci d'avance.

<HTML>
<HEAD>
<TITLE> Menu horizontal </TITLE>
<SCRIPT language='JavaScript'>

function selectionner(obj){
    obj.style.backgroundColor="#660066";
}

function deselectionner(obj){
    obj.style.backgroundColor="blue";
}

var content="";
function afficherMenu(obj,parGauche,parHaut,indice){

var i;
var n=3;    
    content="<TABLE cellspacing=1 width=100px style='position:absolute;left:"+parGauche+";top:"+parHaut+"'>";
    for(i=1;i<=n;i++)    
        content+='<TR><TD style="height:5px; text-align:center;background-color:gray;" >Sous-Menu'+indice+'-'+i+'</TD></TR>';
    content+='<TABLE>';
    document.write(content);
}
</SCRIPT>
</HEAD>
<BODY>
<SCRIPT>
var i;
var n=6;
var gauche=10,haut=35;
    document.write("<TABLE id='topdeck' cellspacing=1 width=600px>");
    document.write("<TR>");
    for(i=1;i<=n;i++){
        if(i>1)    gauche+=100;
        document.write('<TD style="height:5px; text-align:center;background-color:blue;" onmouseover="selectionner(this)" onmouseout="deselectionner(this)" onclick="afficherMenu(this,'+gauche+','+haut+','+i+')">choix'+i+'</TD>');
    }
    document.write("</TR>");
    document.write("</TABLE>");
</SCRIPT>
</BODY>
</HTML>
mercredi 21 mars 2007 à 20:39:44 | Re : probleme avec document.writ()

stfou

Membre Club
Réponse acceptée !
Bonjour,



Pourquoi utiliser document.write ? crée un div :
<div id="le_menu">le code de ton menu</div>

et utilise le innerHTML :
document.getElementById("le_menu").innerHTML="un code HTML";

Allez, je te simplifie le travail, pour ne pas trop te changer, je te crée une fonction :
var document_write=function(text){document.getElementById("le_menu").innerHTML=text};

Bonne Chance


Stfou
mercredi 21 mars 2007 à 20:40:43 | Re : probleme avec document.writ()

stfou

Membre Club

Aïe, je voulais pas te faire peur, j'ai pas mis la bonne émoticone :

et non pas :
mercredi 21 mars 2007 à 21:09:47 | cacher masquer le sous menu

neolin85

Merci stfou pour la réponse j pu resoudre le probleme.

Mtn j un autre soucis, en fait je veut que lorsque l'utilisateur clique une deuxieme fois sur le menu le sous menu disparait.
Donc pour cela j rajouter ça dans mon code :
 if (t.style.visibility == "visible")
  t.style.visibility = "hidden";

Mais apparament le menu s'affiche et se masque rapidement donc l'utilisateur n'aurra pas le temps de voir le changement.

Merci de bien voiloir m'aider.


le code :
<HTML>
<HEAD>
<TITLE> Menu horizontal </TITLE>
<SCRIPT language='JavaScript'>

function selectionner(obj){
 obj.style.backgroundColor="#660066";
}

function deselectionner(obj){
 obj.style.backgroundColor="blue";
}

var content="";
function afficherMenu(obj,parGauche,parHaut,indice){

var i;
var n=3; 
 
 content="<TABLE id='menuH' cellspacing=1 width=100px style='position:absolute;left:"+parGauche+";top:"+parHaut+"'>";
 for(i=1;i<=n;i++) 
  content+='<TR><TD style="height:5px; text-align:center;background-color:gray;" >Sous-Menu'+indice+'-'+i+'</TD></TR>';
 content+='<TABLE>';
 document.getElementById("pendule").innerHTML=content;
 
  var t = document.getElementById("menuH");

 if (t.style.visibility == "visible")   t.style.visibility = "hidden";
}
</SCRIPT>
</HEAD>
<BODY>
<FORM NAME="formulaire">
<SCRIPT>
var i;
var n=6;
var gauche=10,haut=35;
 document.write("<TABLE id='topdeck' cellspacing=1 width=600px>");
 document.write("<TR>");
 for(i=1;i<=n;i++){
  if(i>1) gauche+=100;
  document.write('<TD style="height:5px; text-align:center;background-color:blue;" onmouseover="selectionner(this)" onmouseout="deselectionner(this)" onclick="afficherMenu(this,'+gauche+','+haut+','+i+')">choix'+i+'</TD>');
 }
 document.write("</TR>");
 document.write("</TABLE>");
</SCRIPT>
<DIV id="pendule">&nbsp;</DIV>
</FORM>
</BODY>
</HTML> 

jeudi 22 mars 2007 à 19:46:30 | Re : probleme avec document.writ()

stfou

Membre Club
Bonjour, dans l'instruction for, ce n'est pas la peine de déclarer la variable i plus haut :
for(i=0;i<3;i++) {}
Et tu as oublié les accolades, sans ça ton code ne peut pas marcher.
Aussi, pourquoi utilises-tu le document.write si tu utilise déja le innerHTML ?



Stfou


Cette discussion est classée dans : menu, var, document, write, obj


Répondre à ce message

Sujets en rapport avec ce message

Ouvrir des pages htm dans un iFrame [ par pat84 ] Bonjour à tous,J'ai récupéré un menu sur le web que j'ai modifié pour mon usage...Un menu est situé dans la page index.htm et dans cette page index.ht probleme validation site [ par locs34 ] bonjour, j'ai récupérer le menu qui suit ici (aucune erreur sur validator), je l'ai ensuite intégrer directement dans ma page index.html cela fonction mon sript ne fonctionne pas avec IE [ par Chen34 ] Bonjour, J'ai récupéré un script de menu déroulant sur un site internet, je l'ai adapté à mes besoins. Il fonctionne parfaitement avec Firefox, par-c Disparition d'un sous-menu avec setTimeout() [ par sebalex ] Bonjour à tous, Voici le code d'un menu que j'ai repris et adapté à mes besoins. J'aimerais ajouter la fonction "setTimeout()" pour que le sous-menu probleme avec un script [ par angelimad ] bonjour,je connais pas trop sur javascript, j'ai telechargé un script pour un menu horizentale d'ici, et je l'ai integré dans mon site, il marche tres OffsetTop - comportement hératique sur Firefox [ par lmeylan ] Bonjour, Mon objectif: pouvoir positionner des images en superposition d'autres ! je me creuse la tête depuis pas mal de temps pour comprendre pourqu menu déroulant [ par otacon85 ] bonjourpetit probléme de menu deroulantbgcolor='#FFCC99';bgcolor2='#FFFFCC';document.write génération d'un menu [ par neg03 ] Bonjour, je souhaite utiliser une fonction javascript pour créer un menu :function menu(div){  var b = document.createElement('b'); div.appendChild(b) menu en cascade [ par oceane751 ] bonjour à tous!! j'ai du code me permettant de creer un menu horizontal en cascade, mais j'ai un peu de mal en effet, pour certain element du menu probleme affichage/masquer menu vertical [ par neolin85 ] Bonjour à tous, j'ai developpé un petit code qui permet de faire un menu horizontal avec des menus verticaux pour chaque clique sur le menu.J'ai un pe


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

Photothèque

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 4,415 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales