Op deze website gebruiken we cookies om content en advertenties te personaliseren, om functies voor social media te bieden en om ons websiteverkeer te analyseren. Ook delen we informatie over uw gebruik van onze site met onze partners voor social media, adverteren en analyse. Deze partners kunnen deze gegevens combineren met andere informatie die u aan ze heeft verstrekt of die ze hebben verzameld op basis van uw gebruik van hun services. Meer informatie.

Akkoord

Vraag & Antwoord

Webprogrammeren & scripting

javascript/css

None
6 antwoorden
  • 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?
  • 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.
  • 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).
  • 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..
  • Probeer het eens met element.currentStyle & element.runtimeStyle voor IE en document.defaultView.getComputedStyle(element,null) voor NS6+ en Mozilla.

    /E
  • 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 ]

Beantwoord deze vraag

Dit is een gearchiveerde pagina. Antwoorden is niet meer mogelijk.