Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Внешний Css
Форум программистов > Интернет и сети > Web-программирование > HTML, CSS, XML, JavaScript
kreasl
Здравствуйте.

Возник такой вопрос: на страницу загружается внешний CSS и в процессе работы скрипта нужно определить значение color для класса highlite.
Были такие варианты:

tmpDiv = document.createElement("DIV");
tmpDiv.className = "highlite";
tmpDiv.style.display = "none";
document.getElementById("gb_body").appendChild(tmpDiv);
highliteColor = tmpDiv.currentStyle ? tmpDiv.currentStyle.color : tmpDiv.style.color;
document.getElementById("gb_body").removeChild(tmpDiv);


var ruls = document.styleSheets[0].rules ? document.styleSheets[0].rules : document.styleSheets[0].cssRules;
for (i=0;i<ruls.length;i++)
    if (ruls[i].selectorText.indexOf("highlite") + 1){
        highliteColor = ruls[i].style.color;
        i = ruls.length;
    }


Оба либо работают не во всех браузерах, либо не работают sad.gif.

А есть ли ещё способы?
sir Aurum
Пользуйся функцией, она очень полезная smile.gif

function getElementComputedStyle(elem, prop){
    if(typeof elem != "object"){
        elem = document.getElementById(elem);
    }    
  
    // external stylesheet for Mozilla, Opera 7+ and Safari 1.3+
    if(document.defaultView && document.defaultView.getComputedStyle){
        if (prop.match(/[A-Z]/)) prop = prop.replace(/([A-Z])/g, "-$1").toLowerCase();
        return document.defaultView.getComputedStyle(elem, "").getPropertyValue(prop);
    }
  
    // external stylesheet for Explorer and Opera 9
    if (elem.currentStyle){
        var i;
        while ((i=prop.indexOf("-"))!=-1) prop = prop.substr(0, i) + prop.substr(i+1,1).toUpperCase() + prop.substr(i+2);
        return elem.currentStyle[prop];
    }
    return "";
};
kreasl
Давно сюда не заглядывал: решено было пойти обходным путём, но за функцию спасибо, работает отлично и думаю не раз пригодится smile.gif
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Форум IP.Board © 2001-2008 IPS, Inc.