11548 sujets

JavaScript, DOM et API Web HTML5

Bonjour,

J'essaye de contourner le problème du :
<body onload="correctifpng(document.getElementById('pnglogo'))">

qui empêche d'appliquer le correctif à plus d'une image par page à cause de ID

J'en suis là :

<!--[if lte IE 6]> 
<link href="ie.css" rel="stylesheet" type="text/css" /> 
<script type="text/javascript" src="png.js"></script> 
<script type="text/javascript"> 
// recherche les balises img 
var img_png = document.getElementsByTagName ('img'); 
// masque de recherche (regex) 
var recherchePNG = /(.png$)/; 
// boucle pour trouver toutes les balises img 
for (var i = 0; i < img_png.length; i ++) 
{      
// chercher toutes les images .png 
// test() : fonction regex javascript testant l'existence du masque dans la chaine passée en paramètre 
    if(recherchePNG.test(img_png[i].src)) 
    { 
// appliquer le correctif à toutes les images png trouvées 
         correctifpng(img_png[i].src); 
    } 
} 

</script> 
<![endif]-->


Si vous pouvez m'aider à solutionner...

Merci.[/i][/i]
Modifié par jpsartre (13 Apr 2008 - 13:19)
<!--[if lte IE 6]> 
<link href="ie.css" rel="stylesheet" type="text/css" /> 
<script type="text/javascript"> 
var img_png = document.getElementsByTagName ('img'); 
var recherchePNG = /(.png$)/; 
for (var i = 0; i < img_png.length; i ++) 
{ 
  if (recherchePNG.test (img_png[i].src)) 
  { 
     img_png[i].style.filter = 'progid:DXImageTransform.Microsoft.AlphaImageLoader(src="'+img_png[i].src+'", sizingMethod="image")'; 
  } 
} 
</script> 
<![endif]-->

Marche pas non plus... Smiley sweatdrop

Si ça donne des idées à certains[/i][/i][/i]
Salut,

ce n'est pas juste le onload qui manque Smiley murf ?
<script type="text/javascript">
function pngFiltre() { 
	var img_png = document.getElementsByTagName('img'); 
	var recherchePNG = /[.]png$/; 
	for (var j = 0; j < img_png.length; j ++) {
		if (recherchePNG.test(img_png[j].src)) {
			img_png[j].style.filter = 'progid:DXImageTransform.Microsoft.AlphaImageLoader(src="'+img_png[j].src+'", sizingMethod="image")'; 
		} 
	} 
}
window.onload=pngFiltre;
</script> 

A+
Merci pour votre aide mais toujours pas...
Pourtant là j'y croyais avec le onload... mais non...
J'ai encore essayé d'autres choses mais sans résultats...

Je m'y remets mais si vous avez d'autres idées n'hésitez pas,

Merci

PS, et désolé pour le i qui générait des balises, j'ai compris quand j'ai vu que tu avais mis un j
Modifié par jpsartre (13 Apr 2008 - 12:34)
J'ai finalement trouvé ça qui marche :
function correctPNG() 
   {
   for(var i=0; i<document.images.length; i++)
      {
          var img = document.images[i]
          var imgName = img.src.toUpperCase()
          if (imgName.substring(imgName.length-3, imgName.length) == "PNG")
             {
                 var imgID = (img.id) ? "id='" + img.id + "' " : ""
                 var imgClass = (img.className) ? "class='" + img.className + "' " : ""
                 var imgTitle = (img.title) ? "title='" + img.title + "' " : "title='" + img.alt + "' "
                 var imgStyle = "display:inline-block;" + img.style.cssText 
                 if (img.align == "left") imgStyle = "float:left;" + imgStyle
                 if (img.align == "right") imgStyle = "float:right;" + imgStyle
                 if (img.parentElement.href) imgStyle = "cursor:hand;" + imgStyle              
                 var strNewHTML = "<span " + imgID + imgClass + imgTitle
                 + " style=\"" + "width:" + img.width + "px; height:" + img.height + "px;" + imgStyle + ";"
             + "filter:progid:DXImageTransform.Microsoft.AlphaImageLoader"
                 + "(src=\'" + img.src + "\', sizingMethod='scale');\"></span>" 
                 img.outerHTML = strNewHTML
                 i = i-1
             }
      }
   }
window.attachEvent("onload", correctPNG);


Merci encore pour votre aide,[/i]