Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/gwt/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
GWT历史记录删除项_Gwt_Gwt History - Fatal编程技术网

GWT历史记录删除项

GWT历史记录删除项,gwt,gwt-history,Gwt,Gwt History,是否可以删除gwt中的历史记录项?我想实现的是,在特殊情况下,按下浏览器后退按钮将显示后面的第二个历史记录项。我知道我可以手动调用History.back();,但我不喜欢这样,因为用户会看到一秒钟左右的转换,这是不好的。请提前向Thx寻求帮助 kuku不,浏览器不允许这样做 GWT(当然)使用Javascript操纵浏览器历史记录。Javascript引擎不允许删除历史记录条目 也许您可以选择跳过要删除的步骤,但您必须自己跟踪历史记录,以便决定跳过(向前或向后)如上所述,这不可能通过GWT实现

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


kuku

不,浏览器不允许这样做

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


也许您可以选择跳过要删除的步骤,但您必须自己跟踪历史记录,以便决定跳过(向前或向后)

如上所述,这不可能通过GWT实现,但您可以使用

(注意:HistoryListener(在前一篇文章中提到)已被弃用)

下面是一个简单的例子,可以让您开始学习

public class UrlManager implements ValueChangeHandler<String> {

public UrlManager() {
     History.addValueChangeHandler(this);       
}

public void onValueChange(ValueChangeEvent<String> event) {     
    String historyToken = event.getValue();
}
公共类UrlManager实现ValueChangeHandler{
公共管理器(){
addValueChangeHandler(此);
}
ValueChange上的公共无效(ValueChangeEvent事件){
字符串historyToken=event.getValue();
}

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

这将替换浏览器历史堆栈顶部的当前历史标记。
newToken-替换当前顶部条目的历史标记

fireEvent-一个布尔值,用于确定是否要触发历史状态事件

如果用户不应该访问令牌,为什么要首先将其放在历史堆栈上?问题是,在我放入令牌时,我不知道是否应该添加它。