GWT,删除历史标记

标签 gwt token browser-history

我有一个使用“事件”和“地点”的 GWT 项目。我的问题是历史 token 。

我的 token 的模式:

#/{key 1}/{value 1}/{key 2}/{value 2}  

值 1 必须是数字

值 2 必须是数字

有效 token 是:

#/view/1/date/123123123123

我决定验证 token ,然后问题出现了。

例如,如果用户手动更改 token :

#/view/qqweqweqwedate/date/123123123123

在本例中,值 1 不是数字。我捕获此异常并使用默认值修复 token 。问题是无效的 token 在历史记录中,当我单击浏览器上的“后退”按钮时,它会再次出现。

有人可以告诉我如何从历史记录中删除无效 token 或不允许将其写入历史记录吗?

最佳答案

一旦您设置了新的哈希值(GWT 中的新标记),它就会存储在浏览器历史记录堆栈中。

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

我看到的问题是是否知道用户何时从已经固定的 token 屏幕将其发送回来。

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

关于GWT,删除历史标记,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16858403/

相关文章:

events - 看似多余的事件和事件处理程序

gwt - 完整的基于 GWT 的注册系统

java - 如何计算给定参数中的空格?

javascript - HTML5 历史教程

reactjs - 如何通过 React Router 传递状态?

gwt - 查找现场运行的 GWT 版本

gwt - 测试 GWT 代码的最佳方法是什么

ios - 无法为运行 iOS 8+ (APNS) 的设备获取设备 token

security - JWT中 token 之前的不记名

javascript - Jquery 历史记录/后退按钮插件的当前状态?