11548 sujets

JavaScript, DOM et API Web HTML5

j'essaye d'inserrer du contenu en dom dans ma page et sous ie les noeud images que je créé ne s'affiche pas alors que sous ff c'est bon le code que j'écris est le suivant :

gdimm = document.createElement( 'div' );
gdimm.id = 'gdim';
document.body.appendChild( gdimm );
img = document.createElement( 'img' );
img.src = '/images/titi.gif';
gdimm.appendChild( img );

quelqu'un sait comment faire ?
ps: pareil en faisant un innerHTML la place de l'image est là quand je sélectionne mais l'image n'est pas affiché
Modifié par spoutnikk (07 Dec 2006 - 11:39)
Modérateur
Bonjour et bienvenue,

Tu peux créer ton image comme ceci :
function CreaImg()
{
   var oImg = new Image();
   oImg.id = 'gdim';
   oImg.src = '/images/titi.gif';
   oImg.width = '240';
   oImg.height = '124';
   oImg.alt = 'titi';
   document.body.appendChild(oImg);
}
CreaImg();

DOM : http://nyams.planbweb.com/tutorial/dom/
Modifié par koala64 (07 Dec 2006 - 06:13)
désolé oui bonjour,
alors le code que tu as écrit je l'ai lu à plusieurs endroit, y a des facons un peu différentes de l'écrire, dans mon cas c'est en cliquant sur un lien que je veux qu'une fonction javascript rajoute du html au body, en autre des images.
Hors sous ie elle ne s'affiche pas lors que c'est construit de cette manière. L'inspecteur dom de ff en revanche montre bien que le html est bien construit comme il faut et aussi il affiche l'image ainsi créé.

<a href="javascript:;" onclick="openn()">go</a>

function openn() {
 gdimm = document.createElement( 'div' );
 gdimm.id = 'gdim';
 document.body.appendChild( gdimm );
 img = document.createElement( 'img' );
 img.src = '/images/titi.gif';
 img.width = 10;
 img.height = 10;
 gdimm.appendChild( img );
}

Fait un test si tu as un moment sous ie6, l'image ne s'affiche pas ou plutot c'est comme si il affichait un gif transparent de 10x10... Smiley decu
Modérateur
Il faut que tu vérifies le chemin d'accès à ton fichier image car le soucis vient certainement de ce côté et tu peux commencer à améliorer ton code en l'écrivant comme ceci :

<a href="[#red]#[/#]" onclick="openn(); [#red]return false;[/#]">go</a>

...

function openn() {
 [#red]var[/#] gdimm = document.createElement( 'div' );
 gdimm.id = 'gdim';
 document.body.appendChild( gdimm );
 [#red]var[/#] img = document.createElement( 'img' );
 img.src = '/images/titi.gif';
 img.width = 10;
 img.height = 10;
 [#red]img.alt = 'image de titi';[/#]
 gdimm.appendChild( img );
}

Je te conseille aussi de lire ce tuto pour aller encore plus loin. Smiley cligne
ayé j'ai trouvé mon problème en debuggant à la hache et se fut pénible alors ce n'est pas la fonction js qui est en cause mais son appel, je m'explique en mettant

href="#"

ie va raffraichir la page et me positionner en haut

en revanche si j'utilise

href="javascript:;"


je reste positionner dans ma page comme je veux mais la page n'est pas rafraichit donc pas d'image qui s'affiche Smiley decu

la solution à mon sens est

href="#NULL"


qui rafraichit en restant à la même place

alors maintenant je suis nouveau ici et je sais pas ce que vaut #null dans le w3c du js car je ne le vois pas dans ce tuto Smiley biggrin
Modérateur
Lorsque tu écris #NULL dans ton href, tu dis au navigateur de se positionner sur l'ancre #NULL...
Vu qu'elle n'existe pas, ben ça ne bouge pas...

Si ce n'est pas indiqué dans le tuto, c'est parce que ton bouton n'a rien à faire dans le code (x)html vu qu'il ne fonctionne pas sans JS.

Tu as deux choix :

- Soit tu considères que cette fonction est optionnelle et tu génères aussi le lien d'appel
- Soit tu la remplaces par (ou combines avec) une fonction qui génère cette image côté serveur (via PHP, par exemple) en laissant le lien dans le (x)html.
Modifié par koala64 (07 Dec 2006 - 10:49)
tu dis vrai #NULLL à le même comportement...
Pour ce qui est du bouton js dans le code html, pour les intégriste du w3c, çà peux s'entendre, dans la réalité des faits j'assume que le 1% des gens qui n'aurait désactivé leur js clique et qu'il ne se passe rien Smiley smile
Modérateur
Voilà que je passe pour un extraterrestre maintenant... Smiley decu
J'essaye seulement de ne pas perturber mes visiteurs et de leur offrir une interface fonctionnelle... nuance...

Dans les faits, ce n'est pas 1% d'utilisateurs mais plutôt 10% et certains n'en disposent pas... Il n'y a pas que ceux qui désactivent JS...
Je pars juste du principe que tu ne sais pas le faire et que tu n'es pas prêt à apprendre car, pour moi, cette question ne se pose même pas...
Modifié par koala64 (07 Dec 2006 - 11:23)
je suis d'avis du premier commentaire
a écrit :

Le coup de l'utilisateur lambda qui désactive javascript volontairement, je n'y crois pas vraiment. Comme s'il allait volontairement s'auto-flageller et voir les 3/4 de ses sites préférés lamentablement se croûter parce qu'il aura désactivé une option pour une question de principe (et le coup des virus, mouais). Les utilisateurs ne sont pas des intégristent, contrairement à ceux qui participent à ce billet ou au forum Smiley smile

ceci dit, surfant beaucoup sur mon téléphone mobile ou avec lynx depuis une console SSH distante, j'apprécie beaucoup les sites qui fonctionnent dans des conditions aussi "extrêmes".


je ne sais pas marquer ce message comme résolu, si l'on pouvait m'aider Smiley decu
Modérateur
FAQ

a écrit :
je suis d'avis du premier commentaire
C'est à dire ?
La majorité de ces utilisateurs n'en disposent pas en effet... Il n'est pas (ou peu) question des gens qui désactivent JS...
Modifié par koala64 (07 Dec 2006 - 11:39)
Administrateur
spoutnikk a écrit :
je ne sais pas marquer ce message comme résolu, si l'on pouvait m'aider Smiley decu

Hmmm, c'est écrit dans les Règles du forum que tu as lues et acceptées en t'inscrivant Smiley ohwell
Je suis du même avis que koala64.
L'utilisation du Javascript doit être secondaire.
Il ne doit pas être dépendant du site.

Même si ce n'est qu'une infime partie des visiteurs, il y en a ayant le Javascript désactivé.

Cela m'arrive de naviguer sur des sites via une navigateur en mode texte.
Et quand il y a du Javascript, même si le programme le prend en charge partiellement c'est souvent l'enfer.

Si tu prévois une laternative en vérifiant l'activation de celui-ci alors là pas de problème.
c'est que je cherchais un bouton d'action pour "marquer comme résolu" et j'étais bien allé dans editer du premier message pour info...

Là j'aurais pu mettre (Résolu) voir Résolu: enfin ca permet pas d'être cohérent d'un message à l'autre que de modifier à la main le sujet, enfin c'est un point de vue de développeur Smiley biggrin
spoutnikk a écrit :
Là j'aurais pu mettre (Résolu) voir Résolu: enfin ca permet pas d'être cohérent d'un message à l'autre que de modifier à la main le sujet, enfin c'est un point de vue de développeur Smiley biggrin
Si j'étais de mauvaise foi, je dirais que c'est le point de vue d'un développeur qui confond "intégristes du W3C" et "développeurs soucieux du confort des utilisateurs". Smiley langue
Modifié par Eldebaran (07 Dec 2006 - 13:51)