【发布时间】:2013-08-08 11:33:52
【问题描述】:
我有一个简单的应用程序结构,它将在任何时候包含三个组合 - 我的页眉、页脚和内容组合。复合材料按以下方式布置。
<body>
<div id="header">
<div id="content">
<div id="footer">
</body>
复合被分配给我的EntryPoint 中的三个<div>。 EntryPoint 还包含一个历史处理程序,如下所示。
History.addValueChangeHandler(new ValueChangeHandler<String>() {
@Override
public void onValueChange(ValueChangeEvent<String> event) {
String historyToken = event.getValue();
if(historyToken.isEmpty()) {
parseTokens();
ContentContainer.INSTANCE.setContent(new IndexScreen());
}
else if(historyToken.equalsIgnoreCase("registration")) {
ContentContainer.INSTANCE.setContent(new RegisterScreen());
}
else if(historyToken.equalsIgnoreCase("login")) {
ContentContainer.INSTANCE.setContent(new LoginScreen());
}
}
});
History.fireCurrentHistoryState();
在我的 Composites 中,我有几个类似于以下内容的 ClickEvent 处理程序。
@UiHandler("registerLink")
public void handleClick(ClickEvent event) {
ContentContainer.INSTANCE.setContent(new RegisterScreen());
History.newItem("registration", true);
}
这很好地记录了历史。当我单击后退按钮时,它还会将我带到相应的页面。但是,它具有非常奇怪的效果,即使浏览器聚焦在内容组合上,即浏览器滚动到底部。这不是一个交易破坏者,但它有点破坏用户体验。 (如果解释不清楚,请告诉我,我会添加图片)
究竟是什么原因造成的,我该如何解决?
【问题讨论】:
标签: java gwt browser-history gwt-history