Created
August 23, 2013 19:57
-
-
Save QuestionDevelopment/6323342 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
function getCSSRule(ruleName, deleteFlag) { // Return requested style obejct | |
ruleName=ruleName.toLowerCase(); // Convert test string to lower case. | |
if (document.styleSheets) { // If browser can play with stylesheets | |
for (var i=0; i<document.styleSheets.length; i ) { // For each stylesheet | |
var styleSheet=document.styleSheets[i]; // Get the current Stylesheet | |
var ii=0; // Initialize subCounter. | |
var cssRule=false; // Initialize cssRule. | |
do { // For each rule in stylesheet | |
if (styleSheet.cssRules) { // Browser uses cssRules? | |
cssRule = styleSheet.cssRules[ii]; // Yes --Mozilla Style | |
} else { // Browser usses rules? | |
cssRule = styleSheet.rules[ii]; // Yes IE style. | |
} // End IE check. | |
if (cssRule) { // If we found a rule... | |
if (cssRule.selectorText.toLowerCase()==ruleName) { // match ruleName? | |
if (deleteFlag=='delete') { // Yes. Are we deleteing? | |
if (styleSheet.cssRules) { // Yes, deleting... | |
styleSheet.deleteRule(ii); // Delete rule, Moz Style | |
} else { // Still deleting. | |
styleSheet.removeRule(ii); // Delete rule IE style. | |
} // End IE check. | |
return true; // return true, class deleted. | |
} else { // found and not deleting. | |
return cssRule; // return the style object. | |
} // End delete Check | |
} // End found rule name | |
} // end found cssRule | |
ii ; // Increment sub-counter | |
} while (cssRule) // end While loop | |
} // end For loop | |
} // end styleSheet ability check | |
return false; // we found NOTHING! | |
} // end getCSSRule | |
function killCSSRule(ruleName) { // Delete a CSS rule | |
return getCSSRule(ruleName,'delete'); // just call getCSSRule w/delete flag. | |
} // end killCSSRule | |
function addCSSRule(ruleName) { // Create a new css rule | |
if (document.styleSheets) { // Can browser do styleSheets? | |
if (!getCSSRule(ruleName)) { // if rule doesn't exist... | |
if (document.styleSheets[0].addRule) { // Browser is IE? | |
document.styleSheets[0].addRule(ruleName, null,0); // Yes, add IE style | |
} else { // Browser is IE? | |
document.styleSheets[0].insertRule(ruleName ' { }', 0); // Yes, add Moz style. | |
} // End browser check | |
} // End already exist check. | |
} // End browser ability check. | |
return getCSSRule(ruleName); // return rule we just created. | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment