Antje,
ich könnte dich knutschen bis du schielst. Damit werde ich jetzt eine Woche auf der Alm spielen, bis ich das begriffen habe, und mit Glück werden die aberhunderte von chinesisch und japanisch und wohl auch latein lernenden leuten dankbar sein :-))
liebe gruesse,uschi
ps: ich muss das script erstmal verdauen, und koffer packen, weil ich morgen auf "klassenfahrt" mit meinem intensivkurs gehe, eben auf die alm. vielleicht lichtet ja die bergluft das chaos in meinem hirn.
liebe grüße, uschi
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