2

我正在阅读这个 google 指南并使用google 提供的这个示例代码,但是有一个小故障:使用后退/前进按钮会在确认对话框返回之前更改 URL。这意味着,如果用户决定不离开,则 URL 不再代表当前位置。

有人有解决方案或解决方法吗?理想情况下,在给出确认之前 URL 不会改变,但即使只是在被拒绝后匆忙切换回 URL 也会更好。

4

1 回答 1

5

没有解决方法。您的应用以某种方式检测到 URL 已更改,这会触发位置更改(因此在确认导航之前)。

而且没有办法知道为什么URL 会改变;是“背”吗?一个“前”?使用历史菜单“返回”一次后退几步?书签?手动编辑网址?因此,您无法在所有情况下执行 History.next() 来“取消” URL 更改(另请注意,它会触发另一个位置更改)。并且尝试使用除 History.back/next/go 之外的任何其他内容来修改 URL 会删除转发历史记录,而您可能也不希望这样做。

仅供参考,我在 2 年前在我自己的“地点管理器”中实现了这种行为,并在 Ray Ryan 将 PlaceHistoryHandler 添加到 GWT 2.1 时与他讨论过,我们同意没有比让 URL 不再存在更好的行为了与地点同步。仅供参考,当我在 2 年前和今年早些时候研究这个东西时,GMail 有相同的行为(创建草稿消息并在草稿有未保存的更改时导航)。

于 2010-12-19T23:51:47.523 回答