Ver Mensaje Individual
  #1 (permalink)  
Antiguo 27/01/2010, 10:51
ylodis
 
Fecha de Ingreso: septiembre-2004
Ubicación: Andorra
Mensajes: 130
Antigüedad: 20 años, 2 meses
Puntos: 0
Cambiar dinamicamente CSS con JS, Cambiar alto de página

Hola,

Intento cambiar una propiedad CSS cada vez que se carga la página o se hace resize (pf11). En HTML tengo :
Código:
<body onresize="comprobarAlto()">
y en el HEAD cargo el siguiente fichero :
Código:
<!--//--><![CDATA[//><!--
sfHover = function() {
	var sfEls = document.getElementById("nav").getElementsByTagName("LI");
	for (var i=0; i<sfEls.length; i++) {
		sfEls[i].onmouseover=function() {
			this.className+=" sfhover";
		}
		sfEls[i].onmouseout=function() {
			this.className=this.className.replace(new RegExp(" sfhover\\b"), "");
		}
	}
}
if (window.attachEvent) window.attachEvent("onload", sfHover);
  
//Ajustar alto y flechitas del Navegador
function comprobarAlto() { 
  if (window.innerHeight){ 
     //navegadores basados en mozilla 
     espacio_iframe = window.innerHeight - 100
  }else{ 
     if (document.body.clientHeight){ 
        //Navegadores basados en IExplorer, es que no tengo innerHeight 
         espacio_iframe = document.body.clientHeight-40
     }else{ 
         //otros navegadores 
         espacio_iframe = 485
     } 
  } 
  
//  alert('altura Total :'+window.screen.height)
//  alert('altura Disponible :'+window.screen.availHeight)
  
alturaDisp = espacio_iframe + "px";
regla=(navigator.appName.indexOf("Microsoft")!=-1)?document.styleSheets[0].rules:document.styleSheets[0].cssRules;
regla[3].style.height=alturaDisp;

} 

//--><!]]>

No se porque funciona bien con IE7, pero no con Mozilla o Chone, agradecería cualquier guía porque no soy experto en JS y no entiendo por ejemplo que hace la linea
Código:
regla=(navigator.appName.indexOf("Microsoft")!=-1)?document.styleSheets[0].rules:document.styleSheets[0].cssRules;
que sospecho es la madre del cordero aquí.