Scrolling a page to the top from an iframe (contai

2020-05-01 08:36发布

问题:

There is a website which has an iframe including a web application. Let's assume that the application has a height of 1000px. At the bottom of the application (1000px) there is button. If the user presses the button, then the application changes its view and the new length is only 20px (the rage 20px to 1000px is therefore just white (blank page) ).

My goal is now that when someone presses on that button then the browser should scroll its page to the top (meaning that the scrolling happens outside the iframe. Does anyone know a solution how to do that in gwt (without setting an anchor in the page holding the iframe)?

Many thx in advance!

回答1:

Finally I found the solution. Set at the top of your iframe an anchor and call it with:

public static native void scrollToTop()  /*-{

    $wnd.location.href = '#anchorName';

}-*/;

This will also force the parent window (the window holding the iframe) to scroll to that anchor.



回答2:

Scrolling with javascript

Most people hate iframes for a number of reasons though, you should avoid using them if at all possible.



回答3:

How about using JSNI and scrolling in parent or top window? Something like this:

public static native void scrollToTop()  /*-{
    $wnd.parent.scrollTo(0,0);  // or `$wnd.top.scrollTo(0,0);
}-*/;

The combination with top should also work with just "window". The $wnd is just because GWT is actually running in an embedded iframe. But I'm not sure if your code will be allowed to scroll parent document if they come from different servers.



回答4:

What about calling a java script function scrolling to a div id of the page holding the iframe? Is that possible?