如何滚动到GWT中的div id

mkn*_*mkn 2 javascript iframe gwt scroll jsni

我有一个带有iframe的网页,其中运行了一个gwt应用程序.该网页有一个<div id="head">.无法在iframe(预期)中滚动,因此网页的高度为1000px.在最底部有一个按钮,我希望当有人点击该按钮时(注意:按钮在gwt应用程序中)然后我想滚动到顶部.

这意味着iframe需要强制父窗口滚动到顶部.我尝试使用像这样的jsni函数:

    public static native void scrollToTop()  /*-{
        $wnd.top.scrollTo(0,0);
    }-*/;
Run Code Online (Sandbox Code Playgroud)

但这没效果.所以我的新想法是滚动到div id"header".有谁知道如何做到这一点?

我试过这样的:

document.getElementById('header').scrollIntoView();
Run Code Online (Sandbox Code Playgroud)

但这似乎不起作用(因为它应该采用JSNI方式?).

感谢您的任何投入!

Tho*_*yer 5

它失败是因为GWT在iframe中运行,因此document引用GWT的iframe,而不是"HTML主页".你必须$doc在JSNI中使用它来引用文档(就像$wnd代替它一样window).

但实际上你并不需要JSNI; 普通的旧Java/GWT会做:

Document.get().getElementById("header").scrollIntoView();
Run Code Online (Sandbox Code Playgroud)