4

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

库库

4

3 回答 3

7

不,浏览器不允许这样做。

GWT(当然)使用 Javascript 来操作浏览器历史记录。Javascript 引擎不允许删除历史条目。

也许您可以创建一个HistoryListener来跳过您想要删除的步骤,但您必须自己跟踪历史才能决定跳过哪种方式(向前或向后)

于 2010-10-19T10:50:19.223 回答
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();
}

}

于 2013-07-25T09:13:04.963 回答
0

您可以使用 History.replaceItem(newToken, fireEvent)。

这将替换浏览器历史堆栈顶部的当前历史令牌。
newToken - 替换当前顶部条目的历史令牌
fireEvent - 一个布尔值,用于指示您是否要触发历史状态事件

于 2015-07-01T06:42:11.563 回答