Foros del Web » Programando para Internet » Javascript »

Script para PNG's transparentes

Estas en el tema de Script para PNG's transparentes en el foro de Javascript en Foros del Web. Hola, tengo un script que arregla el problema de los IE anteriores al 7 para la visualizacion de PNG's con transparencias, el script es este: ...
  #1 (permalink)  
Antiguo 14/11/2006, 16:39
Avatar de sjam7  
Fecha de Ingreso: diciembre-2001
Ubicación: Guadalajara, Mexico
Mensajes: 3.672
Antigüedad: 23 años, 1 mes
Puntos: 16
Script para PNG's transparentes

Hola, tengo un script que arregla el problema de los IE anteriores al 7 para la visualizacion de PNG's con transparencias, el script es este:
Código:
<!--[if gte IE 5.5000]>
<script language="JavaScript">
function correctPNG() // correctly handle PNG transparency in Win IE 5.5 or higher.
   {
   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 + "\');\"></span>" 
         img.outerHTML = strNewHTML
         i = i-1
         }
      }
   }
window.attachEvent("onload", correctPNG);
</script>
<![endif]-->
El problema es que como siempre nueva version=nuevos problemas, el nuevo IE ya soporta las transparencias entonces como podria hacer para que este script solo sea usado para IE 5.5 y hasta antes del 7, supongo que es con el IF inicial pero no se como ponerle para que me haga lo que quiero, espero me puedan ayudar, desde ya, gracias
  #2 (permalink)  
Antiguo 14/11/2006, 17:46
 
Fecha de Ingreso: agosto-2006
Mensajes: 110
Antigüedad: 18 años, 5 meses
Puntos: 1
Hola sjam7:
Supongo que de la siguiente forma lo interpretarán los IE con versiones menores que 7 y los anteriores al 5 no harán nada. Pruébalo, yo no lo he probado, no tengo IE7 ni anteriores a 5, tengo una versión y me sobra :)
Por cierto, por si no lo sabes:

gte = greater than or equals (mayor o igual que)
lt = less than (menos que)

Código:
<!--[if lt IE 7]>
    <script language="JavaScript">
        alert("Versión de IE mayor o igual a 5 y menor que 7");
    </script>
<![endif]-->
Un saludo
  #3 (permalink)  
Antiguo 14/11/2006, 22:20
Avatar de sjam7  
Fecha de Ingreso: diciembre-2001
Ubicación: Guadalajara, Mexico
Mensajes: 3.672
Antigüedad: 23 años, 1 mes
Puntos: 16
lo probare y te comento, muchas gracias y no, no sabia eso de que significaba eso de gte y lt

oie, y como podria poner un AND por ejemplo

if gte IE 5.500 AND lt IE 7 seria correcto o como es?
  #4 (permalink)  
Antiguo 15/11/2006, 03:30
 
Fecha de Ingreso: agosto-2006
Mensajes: 110
Antigüedad: 18 años, 5 meses
Puntos: 1
Hola, no parece que se pueda usar AND pero prueba si funciona con if's anidados. Aparentemente sí. Pero tendrías que probarlo con varias versiones a ver si funciona OK.

Código:
<!--[if gte IE 5.5]>
	<!--[if lt IE 7]>
		<script language="JavaScript">
			alert('Programa este bloque...');
		</script>
	<![endif]-->
<![endif]-->
Y si no, mira la propiedad navigator.userAgent para extraer la versión con javascript. En el medio de esa cadena devuelve cosas como 'MSIE 6.0'
Un saludo.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 14:03.