【问题标题】:GXT (3.1.0) Grid (?) causes browser address change?GXT(3.1.0)网格(?)导致浏览器地址更改?
【发布时间】:2014-06-03 22:08:17
【问题描述】:
我想将主要包括Grid 的基于 GXT 的视图集成到现有的 GWT 应用程序中。
集成后,Menu的访问导致浏览器地址发生变化,例如
xxxx://.../?gwt.codesvr=...#MyPlace:param=value -> xxxx://.../?gwt.codesvr=...#
这会导致 History 机制加载 defaultPlace,这不是预期的行为。
起初我认为 GXT 的stateful feature 可能会导致地址更改,以便在那里维护状态信息。但是,网格配置为无状态,StateManager 中使用的默认Provider 是CookieProvider。
- 是否还有其他我不知道的 GXT 功能会导致这种行为?
- 我不知道如何调试这个。这部分有什么提示吗?
【问题讨论】:
标签:
gwt
grid
href
history
gxt
【解决方案1】:
GXT 本身无法做到这一点 - 没有调用 Window.Location(除了检查 Web 应用程序是 http 还是 https),也没有任何 JSNI 调用 $wnd.location,没有引用 @ 987654323@ 甚至将语句继承到活动/地点。
如果您的应用程序中没有一些自定义代码来监听点击,这几乎可以将我们简化为应用程序某处的一些<a href="#">,无论是在 GXT 本身中,还是由您自己的代码呈现。您的网格中是否有任何a 标记,或菜单中可能有此的自定义小部件?
您能否在(也支持 Activity/Place 的)GXT Explorer 演示中重现此问题,例如 http://www.sencha.com/examples/#ExamplePlace:basicgrid 的菜单和其他网格交互?
(是的,您是对的,状态功能仅在您明确要求时才使用 cookie - 否则它只会与使用的任何其他提供程序交互。默认值都不会使用 url 来保存状态,尽管有没有真正的理由你不能做这样的事情。)
要调试此问题,请使用浏览器的工具检查您单击的任何似乎导致此问题的内容 - 是否为 <a> 标记,href 指向 #?如果是这样,为什么?或者,是否对Window.Location.assign 或replace 或History.newItem 进行了错误调用?任何 JSNI 可能会做同样的事情?