"René Lønstrup" <news@rel6+1star.dk> writes:
> Jeg vil gerne have lavet et lille javascript der kan finde ud om der findes
> en rule med specificeret navn (f.eks. en class med navnet "minRegel") i mit
> stylesheet,
Først lidt terminologi: Stylesheet-regler har ikke navne. De har "selectors".
En a de mulige selectors er class-selector, der er på formen
.<navn på klasse>
Så, du vil nok lede efter en regel med selectoren ".minRegel". Du vil
måske også lede efter andre, som fx "div.minRegel" eller "table .minRegel",
som hhv matcher et div-element ned klassen "minRegel" og ethver element
med klassen "minRegel" der er inde i en tabel?
> men jeg har ingen idé om hvordan det skal ordnes (ved at IE har
> document.styleSheet men har endnu ikke fundet ud af hvordan, og om, det kan
> bruges til formålet).
Det burde det kunne.
> Det behøver ikke umiddelbart virke i andre browsere end IE (6), men en
> crossbrowser metode vil selvfølgelig være at foretrække
IE følger, som sædvanligt, ikke helt standarden, så man skal lige tilføje
en ekstra mulighed et sted, så virker det også i Mozilla/Netscape 6+.
---
function findRegel(className) {
for (var i=0;i<document.styleSheets.length;i++) {
var ss = document.styleSheets[i];
var rules = (ss.cssRules || ss.rules); // DOM || IE
for (var j=0;j<rules.length;j++) {
var rule = rules[j];
if (RegExp("\\."+className+"\\b").test(rule.selectorText)) {
return rule.style;
}
}
}
return undefined;
}
---
Denne funktion finder den første regel hvis selector indeholder
class-selectoren ".<className>". Den returnerer så style-elementet
der hører til. Hvis der ikke er nogen, så returnerer den undefined.
Held og lykke.
/L
--
Lasse Reichstein Nielsen - lrn@hotpop.com
DHTML Death Colors: <URL:
http://www.infimum.dk/HTML/rasterTriangleDOM.html>
'Faith without judgement merely degrades the spirit divine.'