Jinglero

Funciones getStyleSheet() y addRuleByStyleSheet()

Seguramente en algun momento de un desarrollo javascript, se va a necesitar modificar una class del css. Puede resultar muy útil y comodo modificar una class en lugar de reasignar o cambiar todas las propiedades de cada uno de los elementos que deseamos modificar.

Para este caso, aca dejo un par de funciones.

/* fileCSS'style.css' por ejemplo; Retorna el objeto de la hoja.*/
function getStyleSheet(fileCSS){ 
	var sheets=document.styleSheets;
	for (j=0; j<sheets.length; j++){
		if(sheets[j].href!= null){
			tagsUrl = sheets[j].href.split('/');
			if(tagsUrl[tagsUrl.length-1] == fileCSS){
				return sheets[j];
			}
		}
	}
}
 
/* stylesheet = return de getStyleSheet();
rule = regla css a la que se le va a agregar la propiedad;
prop =  nombre de la propiedad a cambiar para usar con "style." ej: rule.style.display o .color o borderRight
value =  valor que tomara la propiedad */
function addRuleByStyleSheet(rule, prop, value){
	mysheet = getStyleSheet('styles.css');
	myrules = (mysheet.cssRules)? mysheet.cssRules: mysheet.rules
 
	for (i=0; i<myrules.length; i++){
		if(myrules[i].selectorText!= null){
			if(myrules[i].selectorText.toLowerCase()== rule){
				eval('myrules[i].style.' + prop + ' = "' + value +'";');
				break;
			}
		}
	}
}

Categorised as: Code


Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos necesarios están marcados *

*

Puedes usar las siguientes etiquetas y atributos HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre lang="" line="" escaped="" highlight="">