在GWT应用程序中滚动到页面顶部

8

我有一个GWT应用程序,我想使用以下方法将页面滚动到顶部:

public static native void scrollTop() /*-{
  $wnd.scroll(0, 0);
}-*/;

该方法在TreeNodeListenerAdapter的onClick方法中被调用:
new TreeNodeListenerAdapter() {
  @Override
  public void onClick(Node node, EventObject e) {
    scrollTop();
  }
}

这个不起作用,我不知道为什么。当我在我的方法中放置一个警报时:

$wnd.alert("Treenode clicked");

我能看到警报,但页面没有滚动。我在这里错过了什么?

5
我不知道为什么你的代码不起作用,但是你可以考虑使用GWT静态方法Window.scrollTo而不是你的本地方法(请参见http://google-web-toolkit.googlecode.com/svn/javadoc/2.0/com/google/gwt/user/client/Window.html)。 - aem
谢谢提供信息,但那个方法也不行。 - xor_eq
奇怪的事情。我刚刚尝试使用Window.scrollTo,在IE和FF4b1中都能正常工作。你遇到了什么浏览器问题? - j flemm
1
Firefox 3.6和ie6。一个简单的测试页面,带有Javascript而没有所有gwt和ext-gwt的东西,在两个浏览器中都可以正常工作,我试过了。所以我猜还有其他的东西在起作用,阻止了我滚动页面的尝试 :/ - xor_eq
1个回答

18
如果你想要滚动到页面顶部,只需执行以下操作:
Window.scrollTo (0 ,0);

请确保您导入了正确的包 com.google.gwt.user.client.Window。


我其实已经记不清楚我的问题的解决方案是什么了,但是我以某种方式解决了它。由于这应该是有效的解决方案,我会把它作为答案接受。 - xor_eq

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接