Forums : Xul, Xbl, JS...

Aller à la discussion :  Plus récente Plus ancienne

# insertion d'element html.

Envoyé par : goth

Date : 04/02/2007 21:32

Bonjour, je suis en train de creer une extension et j'ai un petit soucis. Le but est d'ajouter des elements html sur une page, apres qu'lle est eté chargé.

Dans l'ensemble, ca marche mais j'ai des problemes de saut de ligne.

Un exemple :

var resultTxt = document.createTextNode("texte1");
var resultTxt2 = document.createTextNode("texte2");
var divGlob=document.createElement("div");
divGlob.setAttribute('id','resultDiv');
divGlob.setAttribute('style','position: absolute;left : 10px;top : 10px; z-index:99; margin-right:10px;width:300px; background-color:#ffffff;border: 1px black solid;-moz-opacity:0.5;opacity: 0.5;');
divGlob.appendChild(resultTxt);
divGlob.appendChild(document.createElement("br"));
divGlob.appendChild(resultTxt2);

Donc mes elements html se trouve bien au bon endroit en transparence, mais aucun saut de ligne entre les deux elements textes (ils sont alignés).

J'ai egalement essayé d'encapsuler des div (=<div><div>text</div><div>text2</div></div> avec des createElement) mais sans succes, les deux textes sont toujours en ligne...

Si vous avez une idée...

Merci

# Re: insertion d'element html.

Envoyé par : Paul Rouget

Date : 04/02/2007 23:49

Mets les dans des <p>.

<p>
  toto
</p>
<p>
  titi
</p>

# Re: insertion d'element html.

Envoyé par : goth

Date : 05/02/2007 00:28

C'est ca, merci pour l'astuce. Y'a une raison particulière ou bien, c'est comme ca un poin c'est tout?

En tout cas merci

# Re: insertion d'element html.

Envoyé par : goth

Date : 05/02/2007 00:41

Bon en fait j'ai parlé un petit peu vite...ca marche toujours pas...

Bon voila ce que je fais:

Je creer deux texte

var resultTxt = document.createTextNode("Les recommandations");
var resultTxt2 = document.createTextNode("Les recommandations2");

je met chacun de ces texte dans une balise <p>

var pClose=document.createElement("p");
pClose.setAttribute('style','text-align:right; padding-right:5px; padding-top:5px;');
pClose.appendChild(resultTxt);
var pTxt=document.createElement("p");
pTxt.appendChild(resultTxt2);

et chacunes des balises <p> dans un <p> global

var divGlob=document.createElement("p");
divGlob.setAttribute('id','resultPopup');
divGlob.setAttribute('style','position: absolute;left : 10px;top : 10px;z-index:99;margin-right:10px;width:400px;background-color:#ffffff;border: 1px black solid;-moz-opacity:0.5;opacity: 0.5;');

divGlob.appendChild(pClose);
divGlob.appendChild(pTxt);

J'ajoute le tout au document courant

var doc = content.document;
doc.body.appendChild(divGlob);

Et le tout s'affiche en ligne alors. J'ai essayé des <br>,<div>...rien

Je suis quelque peu déappointé :/

# Re: insertion d'element html.

Envoyé par : Paul Rouget

Date : 05/02/2007 01:00

Il n'y a aucun rapport entre ta création dynamique de ton html et son rendu. Pourquoi n'écrit tu pas simplement le contenu HTML dans ce forum, ce sera tellement plus simple.

# Re: insertion d'element html.

Envoyé par : goth

Date : 05/02/2007 01:30

ben fait je veux creer quelchose comme ca :

 <div id='resultPopup' style='position: absolute;left : 10px;top : 10px;z-index:99;margin-right:10px;width:400px;background-color:#ffffff;border: 1px black solid;-moz-opacity:0.5;opacity: 0.5;'>
    <div style='text-align:right; padding-right:5px; padding-top:5px;'>
       texte 1
    </div>
    <div>
       texte 2
    </div>
 </div>

Le probleme est que "Texte 1" et "texte 2" sont en ligne alors qu'ils devrait etre en colonne (le conportement par defaut des div il me semble)

# Re: insertion d'element html.

Envoyé par : Paul Rouget

Date : 05/02/2007 03:23

Hum... ok, et donc ? Si tu crées dynamiquement ce contenu, ça ne donne pas le meme rendu qu'une version "fichier" ?

# Re: insertion d'element html.

Envoyé par : goth

Date : 05/02/2007 14:28

ben on justement dans un fichier (au hasard un html) ca me donne quelque chose comme

texte 1 texte 2

Et quand je crée les elemnts dynamiquement ca me donne quelque chose comme

texte 1 texte 2

(avec texte2 un poil plus haut que texte1 si ca peut aider :p)

# Re: insertion d'element html.

Envoyé par : goth

Date : 05/02/2007 14:56

c bon j'ai resolu mon probleme j'ai rajouté des dicplay block dans les div et ca passe

# Re: insertion d'element html.

Envoyé par : chBok

Date : 05/02/2007 16:04

J'ai l'impression en fait que le problème viendrait d'un héritage des propriétés CSS qui ne se fait pas bien lors de l'insertion de noeuds dans l'arbre DOM. Ca reste à vérifier ?

# Re: insertion d'element html.

Envoyé par : goth

Date : 05/02/2007 20:53

non en fait ,j'ai resolu ca grace a un autre post), http://xulfr.org/forums/read.php?1,4791,(..)

thefab a écrit:

Oui c'est vrai que les éléments DOM doivent être
créés dans le document auquel ils appartiennent.
C'est en partie pour celà qu'ils doivent être créé
avec des méthodes createXXX() et non pas avec new
XXX().

Bien vu, c'est vrai que par après ça paraît
évident.

Et c'est vrai que apres ca parait evident :p En tout cas plus de probleme

Il n'est plus possible de poster des messages dans ce forum.


Copyright © 2003-2013 association xulfr, 2013-2016 Laurent Jouanneau - Informations légales.

Mozilla® est une marque déposée de la fondation Mozilla.
Mozilla.org™, Firefox™, Thunderbird™, Mozilla Suite™ et XUL™ sont des marques de la fondation Mozilla.