GWT历史记录删除项目

时间:2010-10-19 10:43:35

标签: gwt gwt-history

是否可以删除gwt中的历史记录项?我想要实现的是,在特殊情况下,按下浏览器后退按钮将显示后面的第二个历史项目。我知道我可以通过手动调用History.back();来实现它,但我不喜欢这样,因为用户将看到一个左右的转换,这是不好的。请事先提供帮助。

裤裤

3 个答案:

答案 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 - 是否要触发历史状态事件的布尔值