beliebige CSS-Eigenschaft im DOM auslesen
Maximilian Neuhaus
- dhtml
Hallo zusammen,
ich habe folgendes Problem:
Mein Ziel ist es eine Funktion zu schreiben, der ich das zu lesende Stylesheet Attribut übergebe und die mir dann den entsprechenden Wert zurückliefert.
Das hier ist mein erster Versuch:
(ist als Ergänzung zur Selfhtml-Library gedacht)
function getcssAttr(p1,p2,p3) {
if (!MS && DOM && getElem(p1,p2,null)) {
alert(p3);
var Attr = getElem(p1,p2,null).style.p3;
}
else if (MS && getElem(p1,p2,null)) {
var Attr = getElem(p1,p2,null).style.getAttribute(p3);
}
return Attr;
}
Für die MS-Browser klappt das auch einwandfrei, aber wie kann ich unter DOM auf ein beliebiges Styleattribut zugreifen?
Beim "left"-Attribut sähe die Anweisung ja z.B. so aus:
var Attr = getElem(p1,p2,null).style.left;
Also dachte ich mir, wenn ich's variabel will, muss ich es so machen:
var Attr = getElem(p1,p2,null).style.p3;
wenn p3 den auszulesenden Parameter enthält. Dieser wird in meinem Fall als String übergeben. p3 enthält also bspw. "left".
Aber das klappt so überhaupt nicht (zumindest nicht unter Mozilla). Leider habe ich in Selfhtml keine Antwort auf diese Frage gefunden. Ich hoffe, Ihr könnt mir weiterhelfen.
Gruß,
Maximilian
Hallo,
Mein Ziel ist es eine Funktion zu schreiben, der ich das zu lesende Stylesheet Attribut übergebe und die mir dann den entsprechenden Wert zurückliefert.
Man kann die documentStylesheets-Collection bemuehen (statt rules erkennt Mozilla cssRules):
// IE
document.styleSheets.item(...).rules.item(...).style.property
// Mozilla
document.styleSheets.item(...).cssRules.item(...).style.property
Beispiel: http://www.styleassistant.de/test/document_stylesheets.htm
Weitere Moeglichkeiten bieten die DOM-Methode getComputedStyle() sowie das currentStyle-Objekt im IE, siehe:
http://www.styleassistant.de/tips/tip56.htm
http://www.styleassistant.de/tips/tip64.htm
MfG, Thomas