11484 sujets

JavaScript, DOM et API Web HTML5

Bonjour,

Apparement l'appel de document.write() est à éviter! Je souhaiterais par conséquent rectifier une partie de mon code.

Pour situer les choses, dans mon code document.write() fait appel à une fonction Javascript qui récupère l'url de l'image pour chacun des articles et le titre des articles pour s'en servir comme attribut "alt". Cela permet sur la page d'accueil d'afficher à côté des titres des articles les images correspondantes.

Dans le code, j'ai donc l'appel qui se présente sous la forme :

<div class='img-thumbnail'>
<script type='text/javascript'>
document.write(img_thumbnail("monUrl", "monAlt" );
</script></div>


Que j'ai rectifié en :

<div class='img-thumbnail'>
<script type='text/javascript'>
img_thumbnail("monUrl", "monAlt" );
</script></div>


Et sa fonction :

function img_thumbnail (src,alt) {
	var img = document.createElement('img');
	img.setAttribute('src', src);
	img.setAttribute('alt', alt);
	img.width = '80';
	img.height = '80';
	document.body.appendChild(img);
}


Cette fonction m'affiche bien les images mais leur emplacement n'est pas au bon endroit c'est à dire qu'elles se retrouvent tout en bas de la fenêtre alors qu'elles devraient se trouver dans le "<div class='img-thumbnail'>".

J'ai essayé avec les spécifications beforebegin, afterbegin... mais je n'ai pas réussit à obtenir le résultat souhaité.

Ma question est donc de savoir, comment faire pour que les images sont enfants de la balise "<div class='img-thumbnail'>" ?

Merci par avance.
Bonjour misterclass,
Dans ce cas, document.write() ne me semble pas aberrant car il n'y a pas de notion de scripts deferred (différé) ou asynchronous (asynchrone) du moins a première vue

Ce qui m’embête c'est pour quoi tu fais l'image en javascript et pas en HTMl, il y a une raison
car cela complique un peu!
Bonjour aliasdmc,

Je crée l'image en javascript car sur la page d'accueil, je dois afficher pour chacun des titres des articles, les images correspondantes que je récupère dans les articles (première image des articles) et par des contraintes, je fais ça dans un boucle.

Donc, tu penses que je peux laisser le document.write ? (je confirme pour deferred/asynchronous qui existe dans l'un de mes script mais celui-là n'est pas concerné).