GWT,删除历史标记

GWT,删除历史标记,gwt,token,browser-history,Gwt,Token,Browser History,我有一个GWT项目,使用活动和场所。我的问题是历史令牌 我的代币图案: #/{key 1}/{value 1}/{key 2}/{value 2} 值1必须是数字 值2必须是数字 有效令牌为: #/view/1/date/123123123123 我决定验证令牌,然后问题出现了 例如,如果用户手动更改令牌: #/view/qqweqweqwedate/date/123123123123 在这种情况下,值1不是数字。我捕获此异常并用默认值修复令牌。问题是历史记录中存在无效令牌,当我单击浏

我有一个GWT项目,使用活动和场所。我的问题是历史令牌

我的代币图案:

#/{key 1}/{value 1}/{key 2}/{value 2}  
值1必须是数字

值2必须是数字

有效令牌为:

#/view/1/date/123123123123
我决定验证令牌,然后问题出现了

例如,如果用户手动更改令牌:

#/view/qqweqweqwedate/date/123123123123
在这种情况下,值1不是数字。我捕获此异常并用默认值修复令牌。问题是历史记录中存在无效令牌,当我单击浏览器上的“后退”按钮时,它再次出现

有人能告诉我如何从历史记录中删除无效令牌,或者不允许将其写入历史记录吗?

一旦设置了新哈希(GWT中的新令牌),它将存储在浏览器历史记录堆栈中

您无法从浏览器历史记录中删除令牌,因此您最多只能使用代码处理此事件。我的意思是,当用户单击“上一步”时,将访问格式错误的令牌,并且可以通知您做任何您想做的事情:再次修复令牌并将用户带到正确的令牌,或者调用History.back(),以便将用户发送到上一个令牌

我看到的问题是,是否要知道用户何时从已经固定的令牌屏幕返回


理论上,您可以使用javascript使用event.oldURL和event.newURL,但这些属性在GWT中没有公开,因此您应该使用jsni手动实现它们。

我认为解决方案是类似的。非常感谢你。