2010-03-24 4 views
16

Ho bisogno di accedere ed elemento dall'interno di un frame di frame. Per esempio se ho il seguente markup:Come posso ottenere un elemento all'interno di un frame di frame usando JavaScript?

<frameset rows="33%,33%,*"> 
    <frame src="frame1.html"/> 
    <frame src="frame2.html"/> 
    <frame src="frame3.html"/> 
</frameset> 

Come posso ottenere un elemento da uno dei frame figlio? Ho provato questo:

window.frames[1].getElementById('someElementId') 

Ciò si traduce in un errore di tipo:

getElementById() non è una funzione.

Qualcuno può aiutare?

Grazie!

risposta

20

È necessario ottenere l'oggetto Document per il frame.

window.frames[1].document.getElementById('someElementId') 
2

Puoi provare a utilizzare framename così

window.frames['frame_name'].document.getElementsByName('element_name'); 
+0

questo non restituisce oggetti di Windows quindi non funzioneranno mentre window.frames [1] di ritorno l'oggetto Windows quindi funziona. – KlwntSingh

5
<frameset rows="33%,33%,*"> 
<frame id="demo" src="frame1.html"/> 
<frame src="frame2.html"/> 
<frame src="frame3.html"/> 
</frameset> 

Risposta:

document.getElementById("demo").contentDocument.documentElement.innerHTML;