Hallo Martin,
nein, so wollte ich das nicht lösen.
Ich möchte aus einem vorhandenen StyleSheet ein bestimmtes Property einer Klasse auslesen und einem anderen Object den Wert dieses Property übergeben.
Das sieht bisher so aus:
---------------------------------
<script>
var obj = document.all.tags('TH');
function GetClassProperty( class_name, prop_name)
{
for (ss=0 ; ss < document.styleSheets.length; ss++)
{
for (sr=0 ; sr < document.styleSheets(ss).rules.length; sr++)
{
if (document.styleSheets(ss).rules(sr).selectorText == class_name)
{
var obj = document.styleSheets(ss).rules(sr).style;
obj = eval(obj + prop_name);
return obj;
}
}
}
}
for (i=0; i < 5; i++)
{
if (obj(i).innerText > 0)
{
obj(i).runtimeStyle.color = GetClassProperty( '.highlight', '.backgroundColor');
}
}
</script>
----------------------------
Hi Nicolas,
wie setzt man erst zur Laufzeit individuell ein Objekt mit seinen Eigenschaften zusammen?
Also, in Javascript erhält ein Objekt dadurch eine neue Eigenschaft, dass man dieser Eigenschaft einen Wert zuweist. Wenn Du also in Deinem Skript die Anweisung
window.document.blubb = 4;
einbaust, hat Dein document-Objekt dadurch automatisch die Eigenschaft 'blubb'. Was das genau ist, kann ich Dir aber nicht sagen; dafür ist Verona zuständig.
z.B.
var obj = document.styleSheets(ss).rules(sr).style;
if i=1
{
obj = obj + backgroundColor
-> falsch!
-> einfach
-> obj = obj.backgroundColor = null;
}
else
{
obj = obj + Color
-> falsch!
-> einfach
-> obj = obj.Color = null;
}
Statt 'null' zu verwenden, kannst Du der neuen Eigenschaft (oder auf neudeutsch Property) auch gleich einen anständigen Wert zuweisen.
HTH,
Martin