JavaScript: soluzione del problema della trasparenza PNG delle immagini di sfondo in Internet Explorer 6

JavaScript: soluzione del problema della trasparenza PNG delle immagini di sfondo in Internet Explorer 6

Con jQuery la risoluzione del problema del mancato supporto di Internet Explorer 6 alla trasparenza delle immagini PNG di sfondo si risolve con poche righe di codice. Se invece utilizzate il semplice JavaScript la procedura è un pò più complessa. Vediamola insieme.

Aggiungete come prima cosa una classe CSS speciale agli elementi che hanno bisogno della trasparenza PNG (ad esempio ie6-fix-opacity). Quindi inserite il seguente codice in un file JavaScript che chiamerete ie6-fix-opacity.js:


var pngFixIE6 = function() {
	
		var elements = document.getElementsByTagName('*'),
			len = elements.length,
			i;
		for(i = 0; i < len; i++) {
		
			var element = elements[i];
			var cls = element.className;
			
			if(cls.indexOf('ie6-fix-opacity') != -1) {
			
				var bgImg = element.currentStyle.backgroundImage;
				var image = bgImg.substring(bgImg.indexOf('"') + 1, bgImg.lastIndexOf('"'));
				
				element.style.filter = "progid:DXImageTransform.Microsoft.AlphaImageLoader(src='" + image + "', sizingMethod='scale')";
				element.style.backgroundImage = 'none';
				
			
			}
		
		}
	
};

window,onload = function() {

	pngFixIE6();

};

Infine, aggiungete il file JavaScript creato tramite commenti condizionali:


<head>
<!--[if IE 6]>
<script type="text/javascript" src="ie6-fix-opacity.js"></script>
<![endif]-->
</head>
Torna su