是否可以删除gwt中的历史记录项?我想要实现的是,在特殊情况下,按下浏览器后退按钮将显示后面的第二个历史项目。我知道我可以通过手动调用History.back();来实现它,但我不喜欢这样,因为用户将看到一个左右的转换,这是不好的。请事先提供帮助。
裤裤
答案 0 :(得分:7)
没有浏览器不允许这样做。
GWT使用Javascript(当然)来操纵浏览器历史记录。 Javascript引擎不允许删除历史记录条目。
也许你可以让HistoryListener跳过你想删除的步骤,但你必须自己跟踪历史记录以决定跳过哪个方向(向前或向后)
答案 1 :(得分:0)
如上所述,这不可能通过GWT进行,但您可以使用History
进行管理(注意:HistoryListener - 在上一篇文章中提到 - 已被弃用)
这是一个简单的示例,可以帮助您入门。
public class UrlManager implements ValueChangeHandler<String> {
public UrlManager() {
History.addValueChangeHandler(this);
}
public void onValueChange(ValueChangeEvent<String> event) {
String historyToken = event.getValue();
}
}
答案 2 :(得分:0)
您可以使用History.replaceItem(newToken,fireEvent)。
这将替换浏览器历史记录堆栈上的当前历史记录标记
newToken - 用于替换当前顶部条目的历史标记
fireEvent - 是否要触发历史状态事件的布尔值