web-dev-qa-db-fra.com

jQuery faire défiler vers le haut du parent iframe

J'ai un iFrame avec un formulaire de rétroaction. Une fois que l'utilisateur a cliqué sur soumettre, je souhaite utiliser la fenêtre parent pour faire défiler vers le haut. Je sais que je peux faire défiler vers le haut d'une page avec:

$('html, body').animate({scrollTop:0}, 'slow');

Cependant, cela ne fera que faire défiler le contenu de l'iframe, pas la page parent. Aucune suggestion?

22
iltdev

Essayez pour celui-ci:

window.parent.$("body").animate({scrollTop:0}, 'slow');
32
xar

Cela semble faire l'affaire aussi:

$('html, body', window.parent.document).animate({scrollTop:0}, 'slow');

deuxième paramètre à $ est le contexte dans lequel effectuer la recherche.

11
Jeshurun
<script>
    jQuery(document).ready(function($) {
        FB.Canvas.scrollTo(0,0);
        FB.Canvas.setSize({width: 760, height:$('body').height()+20});
    });

    function scrollTo(x,y) {
        $("body").append('<iframe id="scrollTop" style="border:none;width:1px;height:1px;position:absolute;top:-10000px;left:-100px;" src="http://static.ak.facebook.com/xd_receiver_v0.4.php?r=1#{%22id%22%3A0%2C%22sc%22%3Anull%2C%22sf%22%3A%22%22%2C%22sr%22%3A2%2C%22h%22%3A%22iframeOuterServer%22%2C%22sid%22%3A%220.957%22%2C%22t%22%3A0}[0%2C%22iframeInnerClient%22%2C%22scrollTo%22%2C{%22x%22%3A'+x+'%2C%22y%22%3A'+y+'}%2Cfalse]" onload="$(\'#scrollTop\').remove();"></iframe>');
    }
</script>
8
Angrej Singh

<body onLoad="window.parent.scroll(0,0);">

Dans le corps de la page html de l'iframe

C'est aussi simple que possible!

1
Naveen V

Dans la page Iframe.

window.parent.ScrollToTop(); // Scroll to top function

Sur la page parent:

window.ScrollToTop = function(){
  $('html,body', window.document).animate({
    scrollTop: '0px'
  }, 'fast');
};
1
steffanjj