Показать сообщение отдельно
  #14 (permalink)  
Старый 08.12.2011, 16:30
Кандидат Javascript-наук
Отправить личное сообщение для Maxman Посмотреть профиль Найти все сообщения от Maxman
 
Регистрация: 18.06.2010
Сообщений: 122

Я тут как раз недавно написал небольшую функцию для кроссбраузерного доступа к стилям во внешний файлах. Вот, если кому-то нужно

function getCSSRule(ruleIndex, tabIndex) {
     if (ruleIndex === undefined) throw new Error("Rule index must be set");
     var sheet = document.styleSheets[tabIndex || 0];
     if (!sheet) throw new Error("This styleSheet is not defined");
     var cssRule = sheet.rules ? sheet.rules[ruleIndex] : sheet.cssRules[ruleIndex];
     return {
         cssText: function (text) {
             if (!text) {
                 var cssText = cssRule.cssText || cssRule.style.cssText;
                 return cssText.toLowerCase().replace(/.*\{(.*)\}/ig, "$1");
             } else {
                 cssRule.style.cssText = text;
             }
         },
         getProperty: function (name) {
             return cssRule.style[name];
         },
         getSelector: function () {
             return cssRule.selectorText;
         }
     }
 }
 getCSSRule(0).cssText("color: red;");
 alert( getCSSRule(0).getProperty("color") );

Единственный минус, ишак путает номера правил если одно правило применено к нескольким селекторам, разделённым запятыми. Пока думаю как вылечить)

Последний раз редактировалось Maxman, 09.12.2011 в 15:52.
Ответить с цитированием