[js] document objecten stamboom weergeven

Pagina: 1
Acties:

  • r0bert
  • Registratie: September 2001
  • Laatst online: 11-08 16:19
Ik wou even alle elementen (:?) van het document object weergeven, maar dat wil niet helemaal lukken.
Heb tot nu toe dit:
code:
1
2
3
4
5
6
7
function showChilds(sItem) {
    for (i in eval(sItem)) {
        document.write(sItem + '.' + i + '<br>');
        showChilds('' + sItem +'.' + i);
    }
}
showChilds('document');

Maar hij blijft hangen bij document.scripts.o :?

iemand een goed idee ?

Verwijderd

paar dingen:
- gebruik var i
- gebruik eval niet
- children is meervoud van child ;)
code:
1
2
3
4
5
6
7
8
9
function showChildren(sItem) {
    for (var i in sItem) {
        document.write(sItem + '.' + i + '<br>');
        showChildren(sItem[i]);
    }
}

</script>
<body onload="showChildren(document);">

P.S. pas op! dit script duikt echt hard de diepte in! may cause browser to crash!

  • r0bert
  • Registratie: September 2001
  • Laatst online: 11-08 16:19
Is inderdaad niet echt goed voor de browser :)

Moet alleen nog even 1 dingetje weten..

Hoe kun je een [object] omzetten naar een string ? dacht toString() maar dat wil niet

  • Bosmonster
  • Registratie: Juni 2001
  • Laatst online: 29-08 19:47

Bosmonster

*zucht*

Dat ondersteunt Javascript dus jammergenoeg niet zoals Java.

Je kunt wel zelf een toString methode aan ieder object vastplakken, maar dat heeft ook maar gelimiteerde mogelijkheden zeg maar :)

Je kunt wel het type opvragen als string met typeof()

deze geeft [function], [object] en dat soort gebeuren terug. Maar deze zijn ook voor je eigen objecten niet te overschrijven en het nut is dus maar weer beperkt...

  • r0bert
  • Registratie: September 2001
  • Laatst online: 11-08 16:19
't stukje script van Blues
Is dus geen mogelijkheid om dit 'leesbaar' te krijgen ? :(

//edit:
code:
1
2
3
4
5
6
function showChildren(sItem) {
    for (var i in eval(sItem)) {
        document.write(sItem + '.' + i + '<br>');
        eval('showChildren(' + sItem.i + ')');
    }
}

dit werkt verder prima, alleen gaat hij niet 'dieper' :?

Verwijderd

Op vrijdag 22 maart 2002 15:18 schreef r0bert het volgende:
't stukje script van Blues
Is dus geen mogelijkheid om dit 'leesbaar' te krijgen ? :(
Tuurlijk wel. Definieer alleen eerst 'leesbaar'.

  • r0bert
  • Registratie: September 2001
  • Laatst online: 11-08 16:19
met leesbaar bedoel ik dat je kunt zien om welk [object] het gaat

  • SchizoDuckie
  • Registratie: April 2001
  • Laatst online: 18-02-2025

SchizoDuckie

Kwaak

Microsoft heeft een tooltje op z'n website staan, Internet Explorer Webdev Accessoiries.

hier zit een leuk speeltje in, de document tree. rechtermuisknop op een webpagina, en ipv bijv. view source kies je nu de nieuwe optie 'document tree'

er komt dan een popupje, die je helemaal in tree structuur door kan browsen.

Afbeeldingslocatie: http://www.nvlf.nl/doctree.jpg

download


8-)

Stop uploading passwords to Github!


  • Bosmonster
  • Registratie: Juni 2001
  • Laatst online: 29-08 19:47

Bosmonster

*zucht*

Op vrijdag 22 maart 2002 15:37 schreef Blues het volgende:

[..]

Tuurlijk wel. Definieer alleen eerst 'leesbaar'.
Dat zegtie.. toString() :P

  • r0bert
  • Registratie: September 2001
  • Laatst online: 11-08 16:19
Hej, handy programmaatje! En hij doet het in 1!x :P

//edit:

fileSize => error
styleSheets > 0 => error :( paar foutjes, maar ach..

/edit2:

all > geeft ook wel een leuk resultaat :)

Verwijderd

Op vrijdag 22 maart 2002 15:47 schreef Bosmonster het volgende:

[..]

Dat zegtie.. toString() :P
Ik vind een lijst van een paar duizend properties nou niet bepaald leesbaar...

  • Bosmonster
  • Registratie: Juni 2001
  • Laatst online: 29-08 19:47

Bosmonster

*zucht*

Op vrijdag 22 maart 2002 16:34 schreef Blues het volgende:

[..]

Ik vind een lijst van een paar duizend properties nou niet bepaald leesbaar...
Wat heeft dat met toString te maken? toString is een standaard methode van een object die je kunt overwriten. Deze methode wordt in bijvorobeeld Java standaard aangeroepen als je het object opvraagt als String.

Dus als ik alert(mijnObject) zou doen zou die automatisch de mijnObject.toString() method aan moeten roepen (wat in JS dus niet het geval is).

als ik deze gevuld heb met bijvoorbeeld "return this.naam" krijg ik dan in mn alert netjes de naam van die instantie te zien..

gewoon super handy.. vooral als je objecten wilt vergelijken.

Verwijderd

Op vrijdag 22 maart 2002 16:46 schreef Bosmonster het volgende:

[..]

Wat heeft dat met toString te maken? toString is een standaard methode van een object die je kunt overwriten. Deze methode wordt in bijvorobeeld Java standaard aangeroepen als je het object opvraagt als String.

Dus als ik alert(mijnObject) zou doen zou die automatisch de mijnObject.toString() method aan moeten roepen (wat in JS dus niet het geval is).

als ik deze gevuld heb met bijvoorbeeld "return this.naam" krijg ik dan in mn alert netjes de naam van die instantie te zien..

gewoon super handy.. vooral als je objecten wilt vergelijken.
Oh ik probeer .toString() niet te dissen :D

Ik vind alleen dat dat lijstje nog steeds onleesbaar is, ook al wordt elk beestje bij z'n naam genoemd. Er is nog een hele berg formatting nodig om dat een beetje gelikt (en bruikbaar) te krijgen.
Pagina: 1