begin process at 2010 03 21 21:32:19
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Trucs & Astuces

 > CONTOURNER LE BUG IE6 QUI N'AFFICHE PAS LES IMAGES ÉCRITE AVEC JAVASCRIPT

CONTOURNER LE BUG IE6 QUI N'AFFICHE PAS LES IMAGES ÉCRITE AVEC JAVASCRIPT


 Information sur la source

Note :
Aucune note
Catégorie :Trucs & Astuces Classé sous :ie6, image, invisible, explorer, ajax Niveau :Débutant Date de création :25/05/2007 Date de mise à jour :25/05/2007 16:57:32 Vu :6 228

Auteur : micmonay

Ecrire un message privé
Site perso
Commentaire sur cette source (2)
Ajouter un commentaire et/ou une note

 Description

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

  • 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;
  • }
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 :)


 Historique

25 mai 2007 01:05:25 :
Ajout AJAX dans les mots clef
25 mai 2007 01:09:26 :
Amélioration
25 mai 2007 16:57:34 :
Optimisation suite au commentaire

 Sources de la même categorie

HTML_ENTITIES_DECODE par zen69
ACCÈS À LA MÉTHODE SETATTRIBUTE('STYLE','') SOUS IE6 par masternico
OUTIL DE SÉLECTION par jdmcreator
Source avec Zip SIMPLIFIER LA CREATION DYNAMIQUE D'ELEMENT HTML par kazma
DÉTECTER SI CSS EST ACTIVÉ par jdmcreator

 Sources en rapport avec celle ci

ACCÈS À LA MÉTHODE SETATTRIBUTE('STYLE','') SOUS IE6 par masternico
AFFICHER OU CACHER UN COMPOSANT AVEC JAVASCRIPT V1.0 par xloadx
Source avec Zip MOOLOUPE - EFFET DE LOUPE VIA LE FRAMEWORK MOOTOOLS par Miky76
Source avec Zip ALBUM PHOTO 3D(MERCI ADELAMI) AVEC GESTION FICHIER CONFIG (E... par ylebailly
LES STATS DE LYCOS SANS LA PETITE IMAGE par decontaminator

Commentaires et avis

Commentaire de kankrelune le 25/05/2007 15:30:45

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°

Commentaire de micmonay le 25/05/2007 16:16:41

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 :)

 Ajouter un commentaire


Discussions en rapport avec ce code source dans le forum

HTML [ par fafal ] Hello, j'ai un petit probleme avec mon tableaux je voudrai supprimer l'espace qui il y a en dessous de l'image afin que le boutons sois collé en bas a Background-image marche pas avec Internet Explorer [ par amer_ezahir ] Salut ; j'ai un problème d'affichage d'une "background-image" au niveau de Internet Explorer , sur Fire fox ça marche trés bien ! j'ai recherché sur popup image ie6 firefox [ par alligo ] Bonjour à tous,je ne connais quasi rien de javascript j'ai juste pris un script sur un site qui le proposait et je l'ai recopié.j'ai un petit probleme utiliser ajax pour ouvrir une nouvele page dans la page en cours [ par msiham05 ] salut a tous le monde j'ai un probleme dans l'utilisation utiliser ajax pour ouvrir une nouvele page dans la page en cours [ par msiham05 ] salut a tous le monde j'ai un probleme dans l'utilisation utiliser ajax pour ouvrir une nouvele page dans la page en cours [ par msiham05 ] salut a tous le monde j'ai un probleme dans l'utilisation Zoom sur une image en ajax [ par ircland ] Bonjour,mes niveau de ajax etant nul, et de javascript moyen, je cherche une source qui me permet de zoomer sur une image onmouseover, enfait je veux effet ajax puis changer image puis effet ajaxy [ par Annadrill ] bonjour,voilà, j'ai une div avec une image dedans et j'aimerais que lorsque je clique sur un lien, la div se ferme (effect.Fade), puis une fois fermée image et curseur [ par recollets ] peut-on créer un message dans outlook express dans lequel on aura inséré un script qui permettra au destinataire d'avoir une image au bout de la souri


Nos sponsors


Sondage...

Comparez les prix


HTC Magic

Entre 429€ et 429€

CalendriCode

Mars 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728
293031    

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 2,995 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales