我正在阅读 this google guide并使用this sample code provided by google,但是有一个小问题:使用后退/按钮会在确认对话框返回之前更改URL。这意味着如果用户决定不离开,则该URL不再代表当前的地点。
任何人都有解决方案或解决方法?理想情况下,在给出确认之前,URL不会改变,但即使只是在拒绝之后匆忙切换URL也会更好。
答案 0 :(得分:5)
没有解决方法。您的应用程序以某种方式检测到URL已更改,从而触发地点更改(因此在确认导航之前)。
并且无法知道为什么更改了网址;它是“背”吗?一个“出局”?一个“后退”使用历史菜单一次回几步?书签?手动编辑URL?因此,在所有情况下都无法使用History.next()来“取消”URL更改(还要注意它会触发另一个地方更改)。并尝试使用除History.back / next / go之外的任何内容修改URL将删除您可能不想要的前向历史记录。
仅供参考,我在2年前在我自己的“场所经理”中实施了这一行为,并在将RayHanhe PlaceHistoryHandler添加到GWT 2.1时与Ray Ryan进行了讨论,我们一致认为没有比让URL更好的行为了更长时间与地方同步。仅供参考,当我2年前研究过这个东西,然后在今年早些时候,GMail也有同样的行为(创建草稿信息并导航,而草案未保存更改)。