2010-12-11 26 views
1

Je suis moi-même un peu enseignaient Javascript et ne comprennent pas pourquoi la console Chrome me dit quand je l'essayer à la page d'accueil Google:Pourquoi il obtenir parent.childElementCount comme non définie

parent 
> DOMWindow 
parent.childNodes 
> undefined 
parent.frames[0].childElementCount 
> undefined 
parent.frames.length 
> 1 
parent.frames[0].name 
> "wgjf" 
parent.wgjf.childElementCount 
> undefined 
parent.frames[0].childElementCount 
> undefined 
parent.childElementCount 
> undefined 

Je remarque que il y a des cadres, et le parent a des nœuds enfants, alors pourquoi tous ces indéfinis?

Je voudrais apprendre au point que je peux comprendre comment cliquer sur un nom d'utilisateur dans la fenêtre de discussion Gmail sur la gauche ouvre une fenêtre de discussion sur la droite - Je devrais être en mesure de tracer la liste des fonctions appels qui rendent cela possible

Répondre

6

childNodes est une propriété de DOM-nodes, un objet fenêtre n'est pas un DOM-Node.

Essayez:

parent //window-object 
.document //document-object 
.documentElement //root-node, usually <html> 
.childNodes // usually <head> and <body> 

comme suggéré par casablanca.

(devrait revenir 2 pour un document HTML valide)

+2

droit, et plus précisément, l'OP a besoin 'parent.frames [0] .document.documentElement.childElementCount' – casablanca

+0

Serait-ce la même raison pour laquelle le document. frames -> undefined (les frames peuvent être la propriété d'une fenêtre quel document n'est pas?) – PoorLuzer

+1

@PoorLuzer: oui, c'est la même raison. –