2010-12-11 7 views
1

ich einige Javascript lehre und verstehen nicht, warum Chrome Konsole sagt mir das, wenn ich es versuchen, auf der Google-Startseite aus:Warum wird es parent.childElementCount als undefiniert

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 

ich feststellen, dass Es gibt Frames, und das Elternteil hat Kindknoten, also warum all diese undefiniert?

Ich möchte mich zu dem Punkt bringen, dass ich herausfinden kann, wie das Klicken auf einen Benutzernamen im Gmail-Chat-Fenster auf der linken Seite ein Chat-Fenster auf der rechten Seite öffnet - ich sollte in der Lage sein, die Liste der Funktionen zu verfolgen Aufrufe, die dies möglich machen

Antwort

6

childNodes ist eine Eigenschaft von DOM-Knoten, ein Window-Objekt ist kein DOM-Knoten.

Versuchen:

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

wie von casablanca vorgeschlagen.

(sollte 2 für ein gültiges HTML-Dokument zurück)

+2

Recht, und zwar .document.documentElement.childElementCount' die OP muss 'parent.frames [0] – casablanca

+0

dies aus dem gleichen Grunde, warum Dokument sein würde. Frames -> undefined (als Frames kann die Eigenschaft eines Fensters sein, welches Dokument nicht?) – PoorLuzer

+1

@PoorLuzer: Ja, es ist der gleiche Grund. –