2011-10-26 8 views
7

J'ai un très long iframe dans ma page parente. Lorsque vous rechargez ou cliquez sur un lien à l'intérieur de la page de l'image, il est chargé à l'intérieur, mais la fenêtre pure doit être en haut.

J'ai essayé exemple de code variuos: jquery which event is better thatn this et How to scroll parent page with iFrame reload page parent Code du corps:

<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> 

Et maintenant voici mon code final dans la page parent: (cela ne fonctionne pas)

<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> 

mais le problème est que chaque code fait défiler la page parente APRÈS que la trame soit complètement chargée (les images incluent). Whant je veux, c'est que la page parente défile AVANT iframe a fini de charger.

si vous cliquez sur la dernière image ou faites défiler la page et puis recharger seulement iframe vous verrez ce que je veux dire! Merci beaucoup, et je suis désolé mais j'ai découvert l'existence de cette langue après-midi d'après-midi !!!

+0

Vous n'avez pas expliqué pourquoi vous avez supprimé le premier bloc de code pour un bloc de code qui ne fonctionne pas. – Sparky

Répondre

12

Changer votre code:

<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> 

Votre script est appelé avant votre iframe fait partie de votre DOM. Si vous placez votre script après que votre iframe fait partie de votre DOM, il le reconnaîtra et $('iframe') trouvera réellement l'objet.

+5

Il ne wark pas du tout ... :-( – Lork

+2

Cela fonctionne bien.Jquery 2.0 et un navigateur moderne – Julian

+0

Ne fonctionne pas.Vous n'avez pas vérifié avant de poster la réponse! – tylik

3

Le script apparaît avant l'iframe dans la source, et n'a rien pour retarder son exécution (comme être appelé dans onready). Par conséquent, lors de son exécution, iframe n'a pas été ajouté au DOM et le sélecteur ne trouve pas le cadre. Le gestionnaire d'événements sera uniquement lié aux iframes qui apparaissent précédemment dans la source.

+0

Alors ... la solution que peut-on faire? – Lork

+0

Désolé mais je ne peux pas comprendre. Je ne veux pas retarder l'exécution du script !!! Est-ce le contraire? Le script est maintenant exécuté APRÈS le chargement du cadre. Je veux l'exécuter chaque fois que le cadre changer src ... s'il vous plaît aider! – Lork

+2

@Quentin Je sais que j'arrive un peu tard, mais "Le premier paragraphe de ma réponse dit que le problème est causé par X et Y. Changez X ou Y, donc ce n'est plus vrai." est juste une réponse brute. Si vous ne savez pas comment le faire, comment pouvez-vous vous attendre à ce que la personne demande à savoir? C'était une si mauvaise réponse que cela a poussé quelqu'un d'autre à venir le commenter longtemps après. – coder543

Questions connexes