Hallo Uschi
sagt mal, gibt es eine möglichkeit, via js herauszufinden, welche eigenschaften in einer css-klasse gesetzt sind, wenn ich deren namen kenne?
ich möchte rausfinden rausfinden, ob irgendwelche display-eigenschaften gesetzt sind.
ich habe dir ein kleines Objekt geschrieben, was zur Laufzeit die CSS-Objekte ausliest und dir die gewünschten Klasseneigenschaften liefert.
Es funktioniert unter NN 4, NN 6.2, Mozilla und IE ab Version 5. Für Opera gibt es keine Möglichkeit, da es weder die verwendeten Objekte noch for in Schleifen für doumenteneigene Objekte unterstützt.
<html>
<head>
<title></title>
<meta name="author" content="Antje Hofmann">
<meta name="generator" content="Ulli Meybohms HTML EDITOR">
<style type="text/css">
<!--
.eineKlasse {display:none;}
-->
</style>
</head>
<body type="text/javascript">
<script>
<!--
/*
Klasse, zum Auslesen von Eigenschaften definierter Klassen innerhalb von
internen CSS-Bereichen oder Klassen in externen CSS-Dateien
Autor: Antje Hofmann
Datum: 10.08.2002
Version: 1.0
unterstützte Browser: IE ab Version 5, Netscape 4 (4.5 getestet), NN 6.2, Mozilla 1.0
*/
function initClassProperties()
{
this.classGroup = new Array();
this.createClassarray = createClassarray;
this.getProperty =getProperty;
this.createClassarray();
function createClassarray()
{
if (document.styleSheets)
for (var i=0;i<document.styleSheets.length;i++)
for (var j in document.styleSheets[i])
if (j=="rules" || j=="cssRules")
for (var k=0;k<document.styleSheets[i][j].length;k++)
if (document.styleSheets[i][j][k].selectorText.charAt(0)==".") {
if (!this.classGroup[document.styleSheets[i][j][k].selectorText.substring(1)])
this.classGroup[document.styleSheets[i][j][k].selectorText.substring(1)]=new Array();
for (var l in document.styleSheets[i][j][k].style) {
if (typeof document.styleSheets[i][j][k].style[l]!="function" && typeof document.styleSheets[i][j][k].style[l]!="objekt")
if (!this.classGroup[document.styleSheets[i][j][k].selectorText.substring(1)][l] ||(this.classGroup[document.styleSheets[i][j][k].selectorText.substring(1)][l]!=document.styleSheets[i][j][k].style[l] && document.styleSheets[i][j][k].style[l]!=""))
this.classGroup[document.styleSheets[i][j][k].selectorText.substring(1)][l]=document.styleSheets[i][j][k].style[l];
}
}
}
function getProperty(classname,attribut)
{
if (!window.opera && document.layers && classname && attribut)
return document.classes[classname].all[attribut]
else if (this.classGroup[classname]) return this.classGroup[classname][attribut]
else return void(0)
}
}
/*Initialisierung des Objektes */
allClass = new initClassProperties();
/*Ausgabe der Klasseneigenschaft, Parameter Klassenname, Attribut*/
document.write(allClass.getProperty("eineKlasse","display"))
//-->
</script>
</body>
</html>
Viele Grüße
Antje