anoniem Geplaatst: 18 februari 2002 Delen Geplaatst: 18 februari 2002 Hoe kan ik met javascript de css properties van een object uitlezen? Stel ik heb een div: <div id="menu"></div> vervolgens maak ik deze op met een stylesheet in het document of vanaf buiten geladen: #menu { width: 400px; height: 400px; border: 1px solid black; } Nu wil ik met javascript deze waardes weer uitlezen, maar: prop = ''; for(p in menu.style) { prop += p + " -> " + eval(m[p])+ "n"; } alert(prop); geeft mij een keurige lijst van lege, undefined properties. Alleen als ik een style inline op een element toepas, dus opgenomen in de tag zelf, dat worden die waardes in het styleobject gezet. Lijkt mij nogal dom, of juist niet DOM.. net hoe je het bekijkt. Is er een andere manier? Quote Link naar reactie
anoniem Geplaatst: 18 februari 2002 Auteur Delen Geplaatst: 18 februari 2002 gebruik je het javascript voor of na de css? en voor of na de div? Als de css nog niet "geschreven" is dan krijg je natuurlijk een undefined terug. Of, probeer je css uit te lezen ipv de div. t. Quote Link naar reactie
anoniem Geplaatst: 18 februari 2002 Auteur Delen Geplaatst: 18 februari 2002 Heb er niet echt goed naar kunnen kijken, maar werkt het ook niet als je de elementen iets specifieker benoemt. Dus zoiets (fouten voorbehouden): [code:1:466929aef1] var sProps = ''; var oMenu = document.all('menu'); for(var sItem in oMenu) sProps += sItem + ' -> ' + eval('oMenu.'+sItem); [/code:1:466929aef1] ps: DOM werkt met document.getElementById('menu') ps2: Weet het niet zeker, maar het lijkt mij logisch dat je gegevens van elementen uit het document pas kan uitlezen op het moment dat deze geparsed zijn (dus onload lijkt me het veiligst). Quote Link naar reactie
anoniem Geplaatst: 19 februari 2002 Auteur Delen Geplaatst: 19 februari 2002 Ja de css definitie staat bovenaan in het bestand en ook middels een externe stylesheet maakt het niet uit. Gebruik maken van document.getElementById() maakt geen verschil in dit geval, dat wil zeggen, de waardes blijven undefined. Ik roep het stukje javascript op met een body.onload, maar ook als ik hem onder een button zet en het hele document dus geladen is blijven de properties undefined. Het maakt overigens niet uit welke browser ik gebruik. Mozilla geeft hetzelfde. In dit geval, ik wil de width weten, kan je er ook op een andere manier nog achterkomen, maar bij veel properties niet. Ik zou de waardes tussen <style>-tags zelf kunnen uitlezen, maar errr.. Quote Link naar reactie
anoniem Geplaatst: 22 februari 2002 Auteur Delen Geplaatst: 22 februari 2002 Probeer het eens met element.currentStyle & element.runtimeStyle voor IE en document.defaultView.getComputedStyle(element,null) voor NS6+ en Mozilla. /E Quote Link naar reactie
anoniem Geplaatst: 22 februari 2002 Auteur Delen Geplaatst: 22 februari 2002 Fijn dat er toch nog gereageerd wordt :smile: En goed ook. CurrentStyle werkt perfect! Hardstikke bedankt. [ Dit Bericht is bewerkt door: Jurriaan R op 2002-02-22 12:56 ] Quote Link naar reactie
Aanbevolen berichten
Om een reactie te plaatsen, moet je eerst inloggen