我可以在不提交的情況下更改網址(設置參數)嗎? 我發現這種方法 http://google-web-toolkit.googlecode.com/svn/javadoc/2.1/com/google/gwt/user/client/Window.Location.html#replace%28java.lang.String%29 但它提交頁面。所有的GWT狀態都將丟失。GWT。設置網址時無需提交
6
A
回答
7
你爲什麼要這樣做?一般來說,GWT應用程序不會更改頁面 - 因此它們通常是SPA1(單頁應用程序)
當您從服務器加載新頁面時,您將失去該頁面上的狀態。您可以更改URL的散列部作爲將不會返回到服務器,就像這樣:
String newURL = Window.Location.createUrlBuilder().setHash("newhash").buildString();
Window.Location.replace(newURL);
但是,如果你要做到這一點,我建議考慮看看GWT的MVP框架,它支持使用哈希令牌管理位置。
http://code.google.com/webtoolkit/doc/latest/DevGuideMvpActivitiesAndPlaces.html
9
如果你想改變的東西是不是在哈希,比如你要在URL中改變一個參數,你可以做到這樣!
private void someMethod() {
String newURL = Window.Location.createUrlBuilder().setParameter("someParam", "someValue").buildString();
updateURLWithoutReloading(newURL);
}
private static native void updateURLWithoutReloading(String newUrl) /*-{
$wnd.history.pushState(newUrl, "", newUrl);
}-*/;
然後,你可以註冊一個處理使用前進和後退按鈕瀏覽器作爲證明here用戶的功能。
+1
這實際上是正確答案,標記爲正確的答案會導致重新加載。 – 2014-10-23 20:23:25
2
$wnd.history.pushState(newUrl, "", newUrl);
在HTML5瀏覽器中很好地工作。不在IE8或IE9中!
相關問題
- 1. 重置表格提交網址
- 2. 雖然在提交網址
- 3. 設置「提交」
- 4. 提交時提交地址隱藏
- 5. 設置git的子模塊,而無需創建提交
- 6. 無法設置網址SubsamplingScaleImageView URI
- 7. 無法設置登錄網址和應用ID網址
- 8. Jquery無需循環提交
- 9. js/ajax POST無需提交
- 10. 無法逆轉提交 - 從源提交提交不需要
- 11. 在gwt中提交formpanel時調用servlet
- 12. 獲取表單的提交網址作爲相對網址?
- 13. 一旦提交表單提交頁面的網址
- 14. Webform提交特定頁面網址
- 15. 將表單提交到多個網址
- 16. Symfony提交到相同的網址
- 17. 表單提交網址格式
- 18. 從git提交修剪網址
- 19. 防止瀏覽網址提交
- 20. 在提交表格上重寫網址
- 21. 應用商店提交支持網址
- 22. 當設置cookie與ajax時設置網址
- 23. 如何設置SVN網址?
- 24. 設置裸體網址AWS
- 25. 爲Intranet iis7設置網址
- 26. yii2漂亮的網址無法在表單提交上工作
- 27. 設置Github提交RSS源
- 28. 設置留言提交
- 29. 提交後設置DropdownList SelectedItem
- 30. 無需設置formData
謝謝你的有用答案。我需要更改網址而不提交,所以用戶可以複製這個並給朋友。例如wikimapia.org設置在url當前座標http://wikimapia.org/#lat=54.3885546&lon=25.9799194&z=11&l=0&m=b – user672649 2011-03-23 10:09:21
這有助於我,因爲我有一個鏈接,調用另一個GWT應用程序。我使用Window.Location.assign() 謝謝你們! – agentcurry 2013-03-12 18:28:34