• 15 апреля стартует «Курс «SQL-injection Master» ©» от команды The Codeby

    За 3 месяца вы пройдете путь от начальных навыков работы с SQL-запросами к базам данных до продвинутых техник. Научитесь находить уязвимости связанные с базами данных, и внедрять произвольный SQL-код в уязвимые приложения.

    На последнюю неделю приходится экзамен, где нужно будет показать свои навыки, взломав ряд уязвимых учебных сайтов, и добыть флаги. Успешно сдавшие экзамен получат сертификат.

    Запись на курс до 25 апреля. Получить промодоступ ...

Внешний Css

  • Автор темы kreasl
  • Дата начала
K

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;
}

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

А есть ли ещё способы?
 
S

sir Aurum

Пользуйся функцией, она очень полезная B)

Код:
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 "";
};
 
K

kreasl

Давно сюда не заглядывал: решено было пойти обходным путём, но за функцию спасибо, работает отлично и думаю не раз пригодится :)
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!