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

从iframe(包含gwt应用程序)将页面滚动到顶部,gwt,iframe,uiscrollview,Gwt,Iframe,Uiscrollview,有一个网站有一个包含web应用程序的iframe。假设应用程序的高度为1000px。在应用程序的底部(1000px)有一个按钮。如果用户按下按钮,那么应用程序将更改其视图,新的长度仅为20px(因此,从20px到1000px的范围仅为白色(空白页)) 我现在的目标是,当有人按下该按钮时,浏览器应该将其页面滚动到顶部(这意味着滚动发生在iframe之外。有人知道如何在gwt中实现这一点的解决方案吗(不在保存iframe的页面中设置锚定) 提前多个thx! 大多数人讨厌iFrame的原因有很多,如果

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

我现在的目标是,当有人按下该按钮时,浏览器应该将其页面滚动到顶部(这意味着滚动发生在iframe之外。有人知道如何在gwt中实现这一点的解决方案吗(不在保存iframe的页面中设置锚定)

提前多个thx!


大多数人讨厌iFrame的原因有很多,如果可能的话,你应该尽量避免使用它们。

使用JSNI并在父窗口或顶部窗口中滚动怎么样?类似这样:

public static native void scrollToTop() /*-{ $wnd.parent.scrollTo(0,0); // or `$wnd.top.scrollTo(0,0); }-*/; 公共静态本机void scrollToTop()/*-{ $wnd.parent.scrollTo(0,0);//或`$wnd.top.scrollTo(0,0); }-*/;
与top的组合也应该只与“window”配合使用$wnd只是因为GWT实际上是在嵌入式iframe中运行的。但我不确定如果父文档来自不同的服务器,您的代码是否可以滚动父文档。

调用java脚本函数滚动到保存iframe的页面的div id怎么样?这可能吗?

最终我找到了解决方案。设置为在iframe的顶部添加一个锚,并使用以下命令调用它:

public static native void scrollToTop()  /*-{

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

}-*/;

这也将强制父窗口(保存iframe的窗口)滚动到该锚点。

我希望我可以这样做:)。如果另一家公司在iframe中包含了你的一个小应用程序,那么就没有办法了……你能在此基础上扩展吗?你把这个函数放在哪里?如何调用它,以及从何处调用它?可以将该函数放在进行锚定调用的类中。我建议避免跨站点操作。并非所有的浏览器都支持这一点,而且它看起来也不像将来会支持的那样。示例如何使用它: