0
我有一个简单的应用程序结构,在任何时候都会包含三个组合 - 我的页眉,页脚和内容组合。复合材料按以下方式布置。GWT历史记录 - 为什么它改变了我的屏幕焦点?
<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();
在我复合,我有几个ClickEvent
处理器看起来类似以下内容。
@UiHandler("registerLink")
public void handleClick(ClickEvent event) {
ContentContainer.INSTANCE.setContent(new RegisterScreen());
History.newItem("registration", true);
}
这很好地记录了历史。当我点击后退按钮时,它也会将我带到适当的页面。但是,它将浏览器聚焦到内容合成上具有非常奇怪的效果,其中浏览器滚动到底部。这不是一个交易断路器,但它有点打破了用户体验。 (请告诉我,如果解释不清楚,我会添加图片)
究竟是什么导致了这个问题,我该如何解决?
适合'setContent'。我已经删除了重复的代码。但是,我没有任何元素的名称与历史记号相匹配。百思不得其解...... – Ayrx