2013-05-29 8 views
12

Ho creato due pagine Web, una contiene l'altra in un iframe. Vorrei scorrere la pagina incorporata dalla pagina padre tramite javascript.scorre un iframe dalla pagina madre

Quello che ho provato finora:

  1. $('#go').scrollTop(200);

  2. $('.footer').scrollTop(200);

  3. var frame = document.getElementById('go');
    frame.contentWindow.scrollTo(0, 200);

nessuno di questi hanno lavorato

0.123.

il codice HTML pagina web genitore:

<html> 
<body> 
. 
. 
. 
<div class="footer"> 
     <iframe id="go" src="go.html"></iframe> 
    </div> 
    </body> 
</html> 

Entrambe queste pagine sono file locali sul computer e sto usando Google Chrome con la bandiera "--allow-file-access-from-file".

Come si scorre l'iframe in una determinata posizione?

+0

Conosci il contenuto di "go.html"? puoi concentrarti su un elemento richiesto al suo interno? –

+0

@YuriyGalanter Conosco il contenuto di go.html ma contiene un altro iframe su un altro dominio, quindi non posso accedervi. Ho fatto l'iframe in un iframe per aggirare la stessa politica di origine. – stackErr

risposta

7

questo funziona:

document.getElementById("go").contentWindow.setTimeout("this.scrollTo(0, 200);",1); 

Aggiornamento. Doh. Funziona solo in IE, ma penso che ci sia qualcosa lì.

Update 2 Questo funziona universalmente:

document.getElementById("go").onload = function() { this.contentWindow.scrollTo(0, 200) }; 

Devi aspettare per i contenuti iframe per finire carico per scrollTo al lavoro.

+0

Sì, non funziona in Chrome !! E ho anche provato diverse varianti con SetTimeout già senza fortuna :(. – stackErr

+0

Soluzione aggiornata, si prega di fare un tentativo. –

3

È possibile utilizzare window.postMessage per inviare un messaggio dal frame principale all'iframe, dicendogli di scorrere. Questo ti porta a creare uno script postMessage nel frame principale e uno script receiveMessage nell'iframe. È il codice receiveMessage che scorre effettivamente l'iframe.

Ho usato questo polyfill con successo: http://benalman.com/projects/jquery-postmessage-plugin/

+0

Sembra promettente, verrà aggiornato una volta che l'ho provato. – stackErr

+0

La soluzione fornita da Yuriy è molto più semplice da implementare rispetto a questa. Grazie per il plugin, tornerà utile in fondo alla strada! – stackErr

Problemi correlati