我正在查看GWT中的历史记录和历史记录JavaDocs,我注意到没有办法告诉前进或后退按钮是由用户还是程序操作。 "按钮点击" 由您注册的addValueChangeHandler处理,但是传递给处理程序的唯一内容是历史记录堆栈中的字符串。没有任何指示表明 "历史记录" 正在 "向后"(使用后退箭头按钮)移动还是 "向前"(使用右箭头按钮)移动。有没有办法确定这一点?
我正在查看GWT中的历史记录和历史记录JavaDocs,我注意到没有办法告诉前进或后退按钮是由用户还是程序操作。 "按钮点击" 由您注册的addValueChangeHandler处理,但是传递给处理程序的唯一内容是历史记录堆栈中的字符串。没有任何指示表明 "历史记录" 正在 "向后"(使用后退箭头按钮)移动还是 "向前"(使用右箭头按钮)移动。有没有办法确定这一点?
你可以这样拥有一个 UrlManager:
public class UrlManager implements ValueChangeHandler<String> {
public UrlManager() {
History.addValueChangeHandler(this);
}
public void onValueChange(ValueChangeEvent<String> event) {
String historyToken = event.getValue();
}
}
将每个历史令牌保存到列表中。
如果是全新的历史令牌,则将其添加到列表中。
如果是上一个历史令牌,则表示已按下返回按钮。
建议使用列表保存令牌,并保存一个可以在列表中向上和向下移动的迭代器。因此,最初它指向列表末尾。如果新令牌是列表上一个项目,则表示已按下返回按钮。 如果您在列表中间(返回几次)并且有新条目进来(按下新链接),请删除列表的其余部分(无法再向前移动),并添加新条目-并将迭代器移动到该项。
你明白了。