2013-07-18 43 views
0

我使用get請求和一些參數調用我的應用程序...我可以毫無問題地檢索它們,但隨後應用程序繼續使用url中的參數。在GWT中清除URL GET參數而不刷新

我得到這樣的發展模式

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

我只需要刪除行: 「NAME = ... &通= ...」。不刷新我的應用程序。

謝謝!

更新: 雖然在大多數瀏覽器中都有一種名爲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"); 

只有一個問題... dont't作品與CHROME!

回答

0

使用History#newItem(java.lang.String historyToken,boolean issueEvent)和設置您的issueEvent到false

+1

不!這會更改URL片段ID,作者正在詢問是否刪除URL查詢參數。 –

+1

正是。新的URl片段ID將沒有參數 – maneesh

+0

作者不詢問是否從片段ID(「GWT」中的「token」 - 「#」後面的URL部分)中刪除任何內容。問題是關於刪除不屬於歷史令牌一部分的查詢參數。 –

1

你不能用GWT的電流(2.5)歷史API明確的查詢參數,因爲它是基於fragment IDs(URI的最後部分,下面的「#」)。通過捕獲HTML5 History API,片段ID更改是可以在不重新加載Web應用程序的情況下對URI進行的唯一編程更改。

感謝Johannes Barop的gwt-pushstate庫,現在可以利用帶有GWT應用程序的HTML5 History API(位於browsers which support it)。它可能會幫助您在不重新加載應用程序的情況下刪除查詢參數。

以下是測試HTML5歷史API支持的handy page

+0

是其使用的簡單例子嗎? – fguespe