Document.createElement

pazz -  
 MacNdal -
Bonjour,

Je n'arrive pas a créer des ellement via javascript en utilisant document.createElement() j'ai essaié plusieur methode mais rien a faire et je maitrise pas assez javascript pour m'en sortir tout seul .. :(

voila le code javascript:

function cree() {
	
        var fenetre=document.createElement("<div unselectable=on id='windowContainer'>");
		var bord=document.createElement("<div id='windowContainerBorder1'></div>");
		var titre=document.createElement("<div onSelect='return false' id='windowTitle'></div>");
		var box=document.createElement("<div id='controlBox'>");
		var img=document.createElement("<img src='control_box.gif' width='52' height='15' border='0' usemap='#ctrlBox' /></div>");
		box.appendChild(img);
		var area=document.createElement("<div id='contentArea'>");
		var iframe=document.createElement("<iframe></iframe></div>");
		area.appendChild(iframe);
		var resize=document.createElement("<div id='resizeCapture'></div></div>");
		fenetre.appendChild(bord);
        fenetre.appendChild(titre);
        fenetre.appendChild(box);
		fenetre.appendChild(area);
		fenetre.appendChild(resize);

} 


merci d'avance

6 réponses

Dalida Messages postés 6728 Date d'inscription   Statut Contributeur Dernière intervention   922
 
salut,

c'est parce que tu n'utilises pas la fonction correctement.
le constructeur prend le nom de l'élément comme paramètre pas le "innerHTML".

regarde là.
1
MacNdal
 
La plus simple de chose à comprendre est que l'on ne peut jamais utiliser la syntaxe : document.createElement('<div id="..."') car createElement ne reçoit comme argument que le nom de la balise à créer, exemple : document.createElement('div').

Pour t'aider un peu, tu pourrais avoir une idée sur ça :

Je suis entrain de créer une balise DIV et lui donner comme class CSS "mon_div", ensuite je vais créer une balise P avec du texte "Ne KIALA", enfin je vais ajouter ce div dans mon body :

////////////////////////////////////////
var div, p, p_texte;

div = document.createElement('div');
p = document.createElement('p');
p_texte = document.createTextNode('Ne KIALA');

div.setAttribute('class' , 'mon_div'); //ou encore div.class = "mon_div"

p.appendChild(p_texte);

div.appendChild(p);

document.body.appendChild(div); // je l'ai ajouté dans mon body
////////////////////////////////////////////////////////////////////////////////////

Et c'est tout. Bonne chance cher.
1
pazz
 
Merci

PazZ
0
Dalida Messages postés 6728 Date d'inscription   Statut Contributeur Dernière intervention   922
 
si j'ai bien compris (et c'est pas gagné, lol) il suffirait d'ajouter l'id en question dans les paramètres de ta fonction et de n'incrémenter ton index que s'il s'agit de l'
id 
à limiter.
function cree_fenetre( id_balise_a_limiter , ... )
{
	if( id_balise_a_limiter == 'id_de_la_balise_a_limiter' && i == 0 )
	{
		// traitement puis blocage de la répétition en incrémentant l'index
		i++;
	}
	else
	{
		// traitement normal pour les autres liens
	}
}
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
pazz
 
Merci sauf qu'enfaite sa doit poivoire ouvrir plusieur fenetre et l'id est dynamique donc la variable est réutiliser a chaque fenetre mais j'ai fait sa (sa marche mais bon un peut long et pas pratique)

var i=0;
var e1=0;
var e2=0;
var e3=0;

function creer_fenetre(left,top,width,height,NameId) {
	i=NameId;
	if(i=='Mordant'&& e1==0||i=='Test'&&e2==0){
		if(i=='Mordant'){e1++;}
		if(i=='Test'){e2++;} // etc...

// et la fonction a executé

}}




Voila mais si quelqu'un a mieux c'est volontier ^^
Merci
PazZ
0
pazz
 
Re :)


j'ai une nouvelle question a se sujet est il possible de créé l'élèment q'une foix ?? enfin je m'explique j'utilise createlement pour créé plusieur fenetre dragable avec une iframe a l'intérieur
(site interne donc pas de prob pour les iframe) je met une id et une class dynamique de cette façon

function creer_fenetre(left,top,width,height,ClassId) {
        var fenetre = document.createElement("<div id="+ClassId+">");
        fenetre.className="fenetre"; //On donne un attribut class à cette div
        fenetre.style.left=left+"px"; //Modification de l'attribut left du style de notre div
        fenetre.style.top=top+"px";
        fenetre.style.width=width+"px";
        fenetre.style.height=height+"px";
		addEvent(fenetre,"mousedown",function (){premier_plan(fenetre)});
       
        //On créé de la même manière la div "haut":
        var haut = document.createElement("div");
        haut.className="haut";
		addEvent(haut,"mousedown",function (event){commencer_deplacement(event,fenetre)});
		addEvent(haut,"mouseup",arreter_deplacement);
        //On créé ensuite les trois div qui seront dedans:
        var haut_gauche = document.createElement("div");
        haut_gauche.className="haut_gauche";
        var haut_droite = document.createElement("div");
        haut_droite.className="haut_droite";
        var haut_centre = document.createElement("div");
        haut_centre.className="haut_centre";
        //Puis on les insère une par une dans notre bloc "haut":
        haut.appendChild(haut_gauche);
        haut.appendChild(haut_droite);
        haut.appendChild(haut_centre);
        //On insère le tout (la div "haut" et les trois div à l'intérieur) dans le bloc "fenetre":
        fenetre.appendChild(haut);
       
        //On fait de même pour la div "milieu"
        var milieu = document.createElement("div");
        milieu.className="milieu";
        var milieu_gauche = document.createElement("div");
        milieu_gauche.className="milieu_gauche";
        var milieu_droite = document.createElement("div");
        milieu_droite.className="milieu_droite";
        var milieu_centre = document.createElement("<iframe name="+ClassId+">");
        milieu_centre.className="milieu_centre";
        milieu.appendChild(milieu_gauche);
        milieu.appendChild(milieu_droite);
        milieu.appendChild(milieu_centre);
        fenetre.appendChild(milieu);
       
        //On fait de même pour la div "bas
        var bas = document.createElement("div");
        bas.className="bas";
        var bas_gauche = document.createElement("div");
        bas_gauche.className="bas_gauche";
        var bas_droite = document.createElement("div");
        bas_droite.className="bas_droite";
        var bas_centre = document.createElement("div");
        bas_centre.className="bas_centre";
        bas.appendChild(bas_gauche);
        bas.appendChild(bas_droite);
        bas.appendChild(bas_centre);
        fenetre.appendChild(bas);

		premier_plan(fenetre); //On met au premier plan notre fenêtre
        document.body.appendChild(fenetre); //On insère le tout dans notre document, dans le corps
}



donc en gros je mais sa dans le lien

<a href="..." target"nom" onclick="creer_fenetre(500,500,500,500,nom)>nomlien</a>

mon problème est que j'arrive a éviter qu'on puisse l'ouvrir deux foix mais en suite je ne peux pas ouvrir les autre lien

exemple

var i=0;

function cree_fenetre(.....){
if(i==0){
i++;
.............
}

mais evidemment l'orsque que je veut lancer une autre fenetre sa ne fonctionnera pas
(sa doit etre simple mais j'arrive pas)

peut on stocker le nombre de foix qu un ID a apparu sur la page ou dire

if (ClassId est déja sur la page){faire sa}

Merci d'avance

PazZ
-1