【问题标题】:Wicket: scroll to certain anchor after clicking a linkWicket:点击链接后滚动到某个锚点
【发布时间】:2015-07-23 09:41:44
【问题描述】:

我已经向similar question 询问了一个表单,但现在需要在用户单击某个链接后滚动到一个锚点 - 来自另一个线程的my solution 不起作用。 :(

final Link link = new StatelessLink("linkId") {
  @Overrride
  public void onClick() {
    doSomething();

    add(new Behavior() {
       @Override
       public void renderHead(Component component, IHeaderResponse response) {
         super.renderHead(component, response);

         response.render(new HeaderItem() {
           @Override
           public Iterable<?> getRenderTokens() {
             return Collections.singletonList("javascript-anchor");
           }

           @Override
           public void render(Response response) {
             response.write("<script type=\"text/javascript\">\n");
             response.write("window.location.href='#rules';\n");
             response.write("</script>\n");
           }
         });
       }
     });
     setResponsePage(getClass(), getPageParameters());
  }
}

这种方法有什么问题以及如何实现所需的滚动到锚点效果?

【问题讨论】:

  • element.scrollIntoView()?
  • 我认为,核心问题似乎在于我的 JavaScript 不是渲染页面的一部分——而不是在使用表单时。

标签: java wicket


【解决方案1】:

我正在使用以下非 JavaScript 代码:

final Link link = new StatelessLink("linkId") {
  @Overrride
  public void onClick() {
    doSomething();

    final String url = RequestCycle.get().getUrlRenderer().renderFullUrl(Url.parse(urlFor(getClass(), getPageParameters()))) + "#rules;
    setResponsePage(new RedirectPage(url));
  }
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-03-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-03-05
    • 1970-01-01
    相关资源
    最近更新 更多