清除URL GET参数而不在GWT中刷新

时间:2013-07-18 22:29:46

标签: url gwt

我使用get请求和一些参数调用我的应用程序......我可以毫无问题地检索它们,但随后应用程序继续使用url中的参数。

我在开发模式下得到了这个

myapp?name=...&pass=...

我只需要删除该行:“?name = ...& pass = ...”。没有刷新我的应用程序。

谢谢!

更新: 但是,在大多数浏览器中,都有一种名为pushState的新机制,因此您可以在不重新加载页面的情况下将URL更改为任何值。 GWT还没有任何包装器,但您可以通过JSNI使用它,或者,如果您希望使用此代码将gwtquery添加到项目中,那么:

import static com.google.gwt.query.client.GQuery.*;

Properties history = JsUtils.prop(window, "history");
JsUtils.runJavascriptFunction(history, "pushState", null, null, "whatever.html?foo=true");

只有一个问题......不适用于CHROME!

2 个答案:

答案 0 :(得分:1)

您无法使用GWT的当前(2.5)历史记录API清除查询参数,因为它基于fragment IDs(URI的最后部分,在“#”之后)。预测HTML5 History API,片段ID更改是对URI的唯一编程更改,无需重新加载您的Web应用即可。

由于Johannes Barop的browsers which support it库,目前可以利用您的GWT应用程序(gwt-pushstate)中的HTML5历史记录API。它可能会帮助您在不重新加载应用程序的情况下删除查询参数。

以下是用于测试HTML5 History API支持的handy page

答案 1 :(得分:0)

使用History#newItem(java.lang.String historyToken,boolean issueEvent)并将您的issueEvent设置为false