Contourner le bug ie6 qui n'affiche pas les images écrite avec javascript

Soyez le premier à donner votre avis sur cette source.

Snippet vu 8 589 fois - Téléchargée 18 fois

Contenu du snippet

Bonjours

Voila j'ai cherché des jours et des jours pour trouver un moyen pour que ie6 affiche les images (<img src="..." alt=""/>), téléchargés avec la technologie AJAX et afficher au moyen d'un innerHTML, mais je n'ai trouvé aucune réponse dans les forums rien ... . J'ai fini par avoir une idée pour contourner le problème qui ne concerne que ie6. Transformer les balises img en iframe de tailles exactement pareille au image et ça marche !! Voici le script il faut pour qu'il fonctionne au moins un id à vos images et que l'obj en argument sois déjà intégré à la page le reste normalement ça se fait tous seul.

PS: si vous avez déjà penché sur le problème et trouver une meilleur solution je suis preneur ^^ :)

Source / Exemple :


function convImgInFrame(ObjHtml)
{
	rechercheNav=RegExp("MSIE [0-6].?[0-9]");
	if(!navigator.appVersion.match(rechercheNav))
	{
		return true;
	}
	var allImg = ObjHtml.getElementsByTagName("img");
	var TextObj = ObjHtml.innerHTML;
	for(var i = 0 ;i<allImg.length;i++)
	{
		try
		{
			var ImgSrc = allImg[i].getAttribute("src");
			var ImgId = allImg[i].getAttribute("id");
			var remplace = RegExp("<img[^<]*src ?= ?'?\"?"+ImgSrc+"\"?'?[^>]*>","gi");
			TextObj=TextObj.replace(remplace,'<iframe style="height:'+document.getElementById(ImgId).height+'px;width:'+document.getElementById(ImgId).width+'px " src="'+ImgSrc+'" frameborder="0" marginwidth="0" marginheight="0" scrolling="no" id="'+ImgId+'"></iframe>');
		}
		catch(Error)
		{
			var erreur=true;
		}
	}
	if(erreur===true)
	{
		//alert affichée si il y a une erreur lors de la transformation verifier que vous ayez des id est que vous respecter les normes
		alert("Des images pourraient ne pas apparaitre correctement utilisé un navigateur récent");
	}
	ObjHtml.innerHTML = TextObj;
}

Conclusion :


Des idées pour optimiser ou des fautes d'orthographe et de grammaire dac je lis :)

A voir également

Ajouter un commentaire

Commentaires

cs_micmonay
Messages postés
6
Date d'inscription
vendredi 17 décembre 2004
Statut
Membre
Dernière intervention
25 mai 2007
-
Hello

Merci pour ta réponse mais malheureusement elle ne fonctionne pas :( j'avais déjà créer une fonction pareil et elle n'as pas marcher j'ai essayer la tienne et elle ne joue pas non plus (sur win2000 ie6) dommage. Mais je vais quand même utiliser tes 3 lignes pour essayer d'améliorer ma fonction.

++

une autre idée je suis preneur :)
kankrelune
Messages postés
1305
Date d'inscription
mardi 9 novembre 2004
Statut
Membre
Dernière intervention
21 mai 2015
-
Bof bof comme technique... c'est surtout du au fait que IE ne fait pas trop attention au contenu qu'il intègre via innerHTML que ce soit du texte ou du contenu html c'est du pareil au même... .. .

Asseye plutôt un truc du genre...

var allImg = ObjHtml.getElementsByTagName("img");
for (var i=0; i<allImg.length; ++i)
allImg[i].src = allImg[i].getAttribute("src");

@ tchaOo°

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.