begin process at 2010 03 16 21:48:55
  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 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 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 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 pb pour placer les sous-menus [ par annethe ] Bonjour,J'ai créé un menu dynamique. J'ai réussi à placer lemenu où je veux mais je n'arrive pas à bien placer lessous-menus.dans la page ou j'affiche Appel de fonction via un évènement OnClick ? [ par bside8 ] Bonjour,tout commence par un formulaire PHP dans lequel mes utilisateurs doivent saisir une date.Dans le champ concerné se trouve un gestionnaire d'év


Nos sponsors


Sondage...

Comparez les prix


HTC Magic

Entre 429€ et 429€

CalendriCode

Mars 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728
293031    

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 : 0,842 sec (3)

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