2013-01-22 8 views
41

Ho un iframe come questoCome scegliere elemento all'interno iframe utilizzando document.getElementById

<iframe name="myframe1" id="myframe1" width="100%" height="100%" src="a.html"> 
<html> 
    <head></head> 
    <frameset name="myframe2" cols="0%, 100%" border="0" frameBorder="0" frameSpacing="0"> 
     <frame name="page1" src="c.html" scrolling="no"></frame> 
     <frame name="page2" src="d.html" > 
      <html> 
       <head></head> 
       <body id="top"> 
        <div id="div1"> 
         <div id="div2"> 
          <div id="div3"> 
           <ul id="x"> 
            <li>a</li> 
            <li>b</li> 
           </ul> 
          </div> 
         </div> 
        </div> 
       </body> 
      </html> 

     </frame> 

    </frameset> 
</html> 
</iframe> 

voglio fare riferimento all'elemento "x". Ho provato in diversi modi ma non sono riuscito a trovare una soluzione.

risposta

96
document.getElementById('myframe1').contentWindow.document.getElementById('x') 

Fiddle

contentWindow è supportato da tutti i browser tra cui le vecchie versioni di IE.

Si noti che se lo iframe di src proviene da un altro dominio, non sarà possibile accedere al suo contenuto a causa dello Same Origin Policy.

+20

L'ultima frase è molto importante;) fonte vi telaio deve essere sullo stesso dominio della pagina –

+0

Hai risolto il mio problema, grazie. –

15

uso contentDocument per raggiungere questo

var iframe = document.getElementById('iframeId'); 
var innerDoc = (iframe.contentDocument) ? iframe.contentDocument : iframe.contentWindow.document; 

var ulObj = innerDoc.getElementById("x");