You are viewing a plain text version of this content. The canonical link for it is here.
Posted to xap-commits@incubator.apache.org by jm...@apache.org on 2007/04/27 18:35:10 UTC
svn commit: r533188 - /incubator/xap/trunk/codebase/src/xap/util/CssUtils.js
Author: jmargaris
Date: Fri Apr 27 11:35:09 2007
New Revision: 533188
URL: http://svn.apache.org/viewvc?view=rev&rev=533188
Log:
For Michael Mikhaylov: http://issues.apache.org/jira/browse/XAP-396
Modified:
incubator/xap/trunk/codebase/src/xap/util/CssUtils.js
Modified: incubator/xap/trunk/codebase/src/xap/util/CssUtils.js
URL: http://svn.apache.org/viewvc/incubator/xap/trunk/codebase/src/xap/util/CssUtils.js?view=diff&rev=533188&r1=533187&r2=533188
==============================================================================
--- incubator/xap/trunk/codebase/src/xap/util/CssUtils.js (original)
+++ incubator/xap/trunk/codebase/src/xap/util/CssUtils.js Fri Apr 27 11:35:09 2007
@@ -32,13 +32,23 @@
* @return CSS Rule object or null
*
*/
-xap.util.CssUtils.getCSSRule = function (ruleName) {
+xap.util.CssUtils.getCSSRule = function (selector) {
+ sel = selector.toLowerCase();
if (document.styleSheets) {
for (var i = 0; i < document.styleSheets.length; i++) {
- var currentStyleSheet=document.styleSheets[i];
+ var currentStyleSheet = document.styleSheets[i];
if( ! currentStyleSheet) { continue; }
- var rule = xap.util.CssUtils.getCSSRuleFromStyleSheet(ruleName, currentStyleSheet);
- if(rule && rule.selectorText == ruleName) { return rule; }
+ var rule = xap.util.CssUtils.getCSSRuleFromStyleSheet(sel, currentStyleSheet);
+ if(rule !== null) { return rule; }
+ // check imports (IE only)
+ if(currentStyleSheet.imports && currentStyleSheet.imports.length > 0) {
+ for (var j = 0; j < currentStyleSheet.imports.length; j++) {
+ var importedStyleSheet = currentStyleSheet.imports[j];
+ if( ! importedStyleSheet) { continue; }
+ rule = xap.util.CssUtils.getCSSRuleFromStyleSheet(sel, importedStyleSheet);
+ if(rule !== null) { return rule; }
+ }
+ }
}
}
return null;
@@ -51,16 +61,18 @@
* @return CSS Rule object or null
*
*/
-xap.util.CssUtils.getCSSRuleFromStyleSheet = function (ruleName, styleSheet) {
+xap.util.CssUtils.getCSSRuleFromStyleSheet = function (selector, styleSheet) {
if(styleSheet) {
- var styleSheetRules = styleSheet.cssRules ? styleSheet.cssRules : styleSheet.rules;
+ var styleSheetRules = styleSheet.cssRules ? styleSheet.cssRules : styleSheet.rules ;
if(!styleSheetRules) { return null; }
for(var j = 0; j < styleSheetRules.length; j++) {
var rule = styleSheetRules[j];
- if(rule.type == 3) { rule = xap.util.CssUtils.getCSSRuleFromStyleSheet(ruleName, rule.styleSheet); }
- if(rule && rule.selectorText == ruleName) {
+ // check imports (FF & W3C DOM)
+ if(rule.type == 3) { rule = xap.util.CssUtils.getCSSRuleFromStyleSheet(selector, rule.styleSheet); }
+ if(rule && rule.selectorText.toLowerCase() == selector) {
return rule;
}
}
- } return null;
+ }
+ return null;
};