2011-10-26 17 views
7

Tengo un iframe muy largo dentro de mi página principal. Cuando recarga o hace clic en un enlace dentro de la página de i frame, se carga dentro de él, pero la ventana pura debe desplazarse hacia arriba.

He tratado código variuos ejemplo: jquery which event is better thatn this y código How to scroll parent page with iFrame reload página Padres cuerpo:

<script language="javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js" type="text/javascript"></script> 
<script type="text/javascript"> 
jQuery(document).ready(function() { 
    $('iframe').load(function(){ 
     $(window).scrollTop(0); 
    }); 
});</script> 
<iframe frameborder="0" height="1000" id="iframe" src="http://mysite.com" width="800"></iframe> 

Y ahora este es mi código final en la página del padre: (que no funciona)

<script type="text/javascript"> 
$('iframe').ready(function(){ 
    $(window).scrollTop(0); 
}); 
</script> 
<iframe frameborder="0" height="1000" id="iframe" align="top" src="http://foicam.altervista.org/listadinamica.php" width="800" ></iframe> 

pero el problema es que cada código se desplaza hacia arriba en la página principal DESPUÉS de que el marco está completamente cargado (las imágenes incluyen). Lo que quiero es que la página padre se desplaza ANTES de que el iframe haya terminado de cargar.

si hace clic en la última imagen o despliega hacia abajo la página y luego vuelve a cargar solo iframe ¡verá lo que quiero decir!

Gracias mucho, y lo siento, pero descubrí la existencia de este idioma ayer por la tarde !!!

+0

No ha explicado por qué arrojó el primer bloque de código para un bloque de código que no funciona. – Sparky

Respuesta

12

cambiar el código para:

<iframe frameborder="0" height="1000" id="iframe" align="top" src="http://foicam.altervista.org/listadinamica.php" width="800" ></iframe> 

<script type="text/javascript"> 
$('iframe').ready(function(){ 
    $(window).scrollTop(0); 
}); 
</script> 

La secuencia de comandos que se está llamando antes de que su marco flotante es parte de su DOM. Si coloca su secuencia de comandos después de que su iframe sea parte de su DOM, lo reconocerá y $('iframe') realmente encontrará el objeto.

+5

No wark en absoluto ... :-( – Lork

+2

Esto funciona bien. Jquery 2.0 y un navegador moderno. – Julian

+0

No funciona. ¡No ha verificado antes de publicar la respuesta! – tylik

3

La secuencia de comandos aparece antes del iframe en la fuente y no tiene nada que demorar su ejecución (como ser llamado en onready).

En consecuencia, cuando se ejecuta, el iframe no se ha agregado al DOM, y el selector no encuentra el marco. El controlador de eventos solo estará vinculado a cualquier iframes que aparezca anterior en la fuente.

+0

Entonces ... la solución ¿qué puede ser? – Lork

+0

Lo siento pero no puedo entender. ¡¡No quiero retrasar la ejecución del script !!! ¡Es lo opuesto! La secuencia de comandos ahora se ejecuta DESPUÉS de que se cargue el marco. Quiero ejecutarlo cada vez que el marco cambie src ... ¡por favor ayuda! – Lork

+2

@Quentin Sé que llegaré un poco tarde a esto, pero "el primer párrafo de mi respuesta dice que el problema está causado por X e Y. Cambie X o Y, por lo que ya no es verdad". es solo una respuesta cruda. Si no sabe cómo hacerlo, ¿cómo puede esperar que la persona lo pregunte? Fue una respuesta tan pobre que provocó que alguien más viniera y comentara mucho después de haberla hecho. – coder543

Cuestiones relacionadas