Wicket:告诉浏览器滚动到某个标签(锚点)

编程入门 行业动态 更新时间:2024-10-25 12:29:43
本文介绍了Wicket:告诉浏览器滚动到某个标签(锚点)的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

限时送ChatGPT账号..

我们正在使用 Wicket,我们生成的页面很长(很多垂直滚动).一些链接或表单的 onSubmit 方法调用只是对数据库执行一些操作并再次显示相同的页面:

We are using Wicket and our generated pages are quiet long (a lot of vertical scrolling). Some links or form's onSubmit methods invoke just perform some actions on the database and show the same page again:

public class MyPage extends WebPage {

    public MyPage(PageParameters parameters) {
        ....

        final Form<Void> form = new StatelessForm<Void>("formId") {
            protected void onSubmit() {
                // some database stuff
                ...
                setResponsePage(getClass(), getPageParameters());
            }
        };
        ...
    }
}

如何使 setResponsePage 调用导致浏览器滚动到表单,从而使页面不只是显示顶部?也许是一些 JavaScript 注入?

How can I make the setResponsePage invocation cause the browser scroll to the form, so the page is not just showing the top? Maybe some JavaScript-injection?

推荐答案

我认为一个不错的 Wicket-y 解决方案将 Michael 的答案中已有的内容与 Behavior 相结合,因此您只需 <代码>将添加到您的表单中.

I think a nice Wicket-y solution combines stuff that is already in Michael's answer, with a Behavior, so you can just add this to your form.

form.add( new ScrollToTopBehavior()); 

行为本身就像这样:

public class ScrollToTopBehavior extends Behavior
{

    @Override
    public void renderHead( Component component, IHeaderResponse response )
    {
        super.renderHead( component, response );
        response.render( JavaScriptHeaderItem.forReference( Application.get().getJavaScriptLibrarySettings().getJQueryReference() ) );

        component.setOutputMarkupId( true );

        String script = String.format("doSomeJavaScriptStuff('%s')", component.getMarkupId());
        response.render( OnDomReadyHeaderItem.forScript( script ) );
    }
}

更新:

要仅滚动到特定 ID/ANCHOR 一次,您可以按照以下答案进行操作:https://stackoverflow/a/3163635/461499

For scrolling to a specific ID / ANCHOR only once, you can follow this answer: https://stackoverflow/a/3163635/461499

这篇关于Wicket:告诉浏览器滚动到某个标签(锚点)的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

更多推荐

[db:关键词]

本文发布于:2023-04-26 03:04:56,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1128545.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:浏览器   标签   Wicket

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!