2

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

这意味着 iframe 需要强制父窗口滚动到顶部。我用这样的 jsni 函数进行了尝试:

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

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

我试过这样:

document.getElementById('header').scrollIntoView();

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

感谢您的任何投入!

4

2 回答 2

5

它失败是因为 GWT 在 iframe 中运行,因此document引用了 GWT 的 iframe,而不是您的“HTML 主机页面”。您必须$doc在 JSNI 中使用来引用文档(就像$wnd代替window)。

但实际上你不需要 JSNI。普通的旧 Java/GWT 可以:

Document.get().getElementById("header").scrollIntoView();
于 2011-10-12T15:53:08.100 回答
0

最后我找到了解决方案。您必须在网站顶部(iframe 内的网站)设置锚点。请查看我的另一篇文章了解更多详细信息。

PS我希望你看到这篇文章的重要性并点赞。这将为其他人节省大量时间。

于 2011-10-12T19:26:27.447 回答