如何在 GWT 中滚动到 div id

发布于 2024-12-09 04:54:43 字数 551 浏览 1 评论 0原文

我有一个带有 iframe 的网页,其中正在运行 gwt 应用程序。该网页有一个

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

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

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

我这样尝试:

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

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

感谢您的任何意见!

I have a webpage with an iframe in which a gwt application is running. The webpage has a <div id="head">. It is not possible to scroll in the iframe (intended) so the webpage has for example a height of 1000px. At the very bottom there is a button and I want that when someone clicks on that button (note: the button is in the gwt application) then I want to scroll to the top.

That means that the iframe needs to force the parent window to scroll to the top. I tried it with a jsni function like this:

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

But this didn't work. So my new idea is to scroll to the div id "header". Does anyone know how to accomplish this?

I tried it like this:

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

But that seems not to work (because it should be in a JSNI manner?).

Thanks for any inputs!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

比忠 2024-12-16 04:54:43

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

但实际上你并不需要 JSNI;普通的旧 Java/GWT 就可以了:

Document.get().getElementById("header").scrollIntoView();

It fails because GWT runs in an iframe, so document references the GWT's iframe, and not your "HTML host page". You have to use $doc in JSNI to reference the document (just like $wnd instead of window).

But you actually don't need JSNI for that; plain old Java/GWT will do:

Document.get().getElementById("header").scrollIntoView();
踏雪无痕 2024-12-16 04:54:43

最后我找到了解决方案。您必须在网站顶部(iframe 内的网站)设置一个锚点。请查看我的其他 帖子了解更多详情。

PS 我希望您看到这篇文章的重要性并投票。这将为其他人节省很多时间。

Finally I found the solution. You have to set an anchor at the top of your website (the website inside the iframe). Please look at my other post for more details.

P.S. I hope you see the importance of this post and upvote it. It will save a lot of time for other people.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文