我已经向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());
}
}
这种方法出了什么问题以及如何实现所需的滚动到锚点效果?
答案 0 :(得分:0)
我使用以下非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));
}
}