Safari & getComputedStyle
Sven Wagener
- javascript
Guten Tag,
folgendes Script soll die CSS display Eigenschaft eines Layers herausfinden:
element=document.getElementById("layername");
document.defaultView.getComputedStyle(element, "").getPropertyValue("display");
Dies funktioniert bis jetzt auch in fast allen Browsern wunderbar, bis auf den SAFARI Browser auf dem Macintosh. Dort scheint die Funktion auszusetzen, bzw. das JavaScript zu unterbrechen sobald der Wert "none" ist.
Kann mir da jemand weiterhelfen?
MFG,
Sven Wagener.
Hallo Sven.
folgendes Script soll die CSS display Eigenschaft eines Layers herausfinden:
element=document.getElementById("layername");
document.defaultView.getComputedStyle(element, "").getPropertyValue("display");Dies funktioniert bis jetzt auch in fast allen Browsern wunderbar, bis auf den SAFARI Browser auf dem Macintosh.
Ich nutze folgende Wrapper-Funktion:
function getCurrentStyle(node, prop) {
if (!node || typeof(node) != 'object' ||
!prop || typeof(prop) != 'string') return;
if (window.getComputedStyle) {
return window.getComputedStyle(node, null)[prop];
} else if (document.currentStyle) {
return node.currentStyle[prop];
}
return undefined;
}
/* Anwendungsbeispiel:
alert(getCurrentStyle(document.body, background));
*/
AFAIK unterstützt Safari document.currentStyle.
Einen schönen Montag noch.
Gruß, Mathias
Hallo nochmal.
AFAIK unterstützt Safari document.currentStyle.
Offenbar nicht. Vielleicht hilft dir diese Lösung weiter.
Einen schönen Montag noch.
Gruß, Mathias
Bei haargenau dieser lösung ist mir der Fehler ja aufgefallen ;-)
Trotzdem Danke!
Sven
Hi,
Dies funktioniert bis jetzt auch in fast allen Browsern wunderbar, bis auf den SAFARI Browser auf dem Macintosh. Dort scheint die Funktion auszusetzen, bzw. das JavaScript zu unterbrechen sobald der Wert "none" ist.
Kannst Du das mit try ... catch abfangen?
Und BTW: Die von dir verwendete Routine ist nicht allgemeingültig, da sie float nicht bedient (JS-Syntax: cssFloat bzw. styleFloat).
Gruß, Cybaer