将页面从iframe滚动到顶部(包含gwt应用程序)

时间:2011-10-05 21:02:47

标签: gwt iframe uiscrollview

有一个网站有一个包含网络应用程序的iframe。我们假设应用程序的高度为1000px。在应用程序的底部(1000px)有按钮。如果用户按下按钮,则应用程序将更改其视图,新长度仅为20px(因此,20px至1000px的范围仅为白色(空白页))。

我的目标是,当有人按下该按钮时,浏览器应将其页面滚动到顶部(意味着滚动发生在iframe之外。有没有人知道如何在gwt中执行此操作的解决方案(无需设置锚点)在持有iframe的页面中??

提前很多!

4 个答案:

答案 0 :(得分:1)

最后我找到了解决方案。在iframe的顶部设置一个锚点并将其命名为:

public static native void scrollToTop()  /*-{

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

}-*/;

这也会强制父窗口(包含iframe的窗口)滚动到该锚点。

答案 1 :(得分:0)

Scrolling with javascript

但是,出于多种原因,大多数人都讨厌iframe,如果可能的话,你应该避免使用iframe。

答案 2 :(得分:0)

如何在父窗口或顶窗口中使用JSNI和滚动?像这样:

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

与top的组合也应该只与“窗口”一起使用。 $ wnd只是因为GWT实际上是在嵌入式iframe中运行。但我不确定如果它们来自不同的服务器,您的代码是否会被允许滚动父文档。

答案 3 :(得分:0)

如果调用java脚本函数滚动到包含iframe的页面的div id呢?这可能吗?