在我們的應用程序中,我們需要檢查數據是否在導航離開之前保存在特定位置。所以用戶應該能夠否定瀏覽器後退按鈕請求。但是在收到歷史值更改事件時,url已經更改。 History類似乎沒有辦法恢復url。任何人有任何想法?如何顯示以前的網址後用戶取消對話與活動#mayStop()消息?
回答
使用window.onunload
或window.onbeforeunload
javascript回調來保密/保存狀態。 onbeforeunload example
我還沒有實際執行此行爲,但這裏是我的計劃,也許它會爲你工作。
1)每當您收到一個onHistoryChanged事件並決定允許它時,將當前的historyToken保存在某個實例變量中。
2)跟蹤應該阻止導航的頁面上的活動。使用可跟蹤多個活動的數據結構,如多個文件上傳,多個編輯等。
3)當您收到一個新的onHistoryChanged事件時,如果#2的數據結構指示導航不安全,請避免更改頁面並恢復您在#1中保存的historyToken。我假設你可以做到這一點無論是:
一)致電History.newItem(oldHistoryToken,false)還是
B)調用History.newItem(oldHistoryToken,真),並保持標誌可以強制接下來的歷史變化就被忽略了。
再次,我沒有實際執行這個,所以讓我知道它是如何工作的。
如果您有允許用戶離開應用程序的鏈接,並且您想要阻止該應用程序,則還需要添加onbeforeunload。
我已經實現了某種東西。我原本以爲最終會在歷史堆棧中出現重複的標記,但顯然歷史代碼足夠聰明而不會這樣做。 – 2010-11-12 19:22:26
我實際上做的是我記錄當前的URL(實際上只是歷史令牌),當我做一個History.newItem,我有一個包裝類來做到這一點。當用戶取消導航事件時,我只需將最新保存的令牌添加到History.newItem(使用false parm)即可。所以問題解決了,謝謝大家。 – 2010-11-12 19:26:03
查看gwt-platform框架中的PlaceManagerImpl
類。尤其是onValueChange()
方法和處理onLeaveQuestion
字段的方法。
希望有所幫助。
基本上這就是我最終做的。感謝鏈接到源代碼瀏覽器,我總是忘記它是可用的。 – 2010-11-12 19:30:02
很高興我能幫到你。 – z00bs 2010-11-13 07:41:03
在GWT 2.1中,您將獲得活動和地點。並且活動有一個maystop方法,如果我理解正確,這正是您想要的。
- 1. 消息:顯示對話
- 2. 顯示字符串與對話消息
- 3. 顯示消息以顯示用戶
- 4. 如何在NDEF發現/活動啓動後顯示NDEF消息?
- 5. 顯示非用戶的傳入消息對話框,如Allo
- 6. SQL Server顯示消息如對話
- 7. 如何在Response.close後將顯示消息顯示給用戶?
- 8. 如何查詢與用戶對話摘要並顯示最新消息
- 9. 顯示消息對話框的方法
- 10. 顯示簡單的消息對話框
- 11. 如何在互聯網消失後立即向用戶顯示消息,使用可達性與網絡2.0
- 12. 激活WordPress插件後顯示消息
- 13. 如何向用戶對話顯示每個用戶的最後一條消息以保存聊天記錄?
- 14. 處理異常並獲取消息對話框以顯示
- 15. 如何在vb.net的對話框中取消用戶單擊後取消消息框?
- 16. nested_messages沒有顯示以前的消息
- 17. 如何顯示用戶消息
- 18. Android Studio取消Toast消息以顯示新消息
- 19. 顯示啓動消息後,碼頭的用戶:運行啓動
- 20. 消息系統,顯示對話列表
- 21. 在Android中顯示消息對話框
- 22. Openerp顯示消息對話框
- 23. 向用戶顯示消息,然後放棄會話
- 24. 在關閉活動時顯示消息
- 25. 會話消息未顯示
- 26. 如何在會話超時時向用戶顯示消息
- 27. 如何向用戶顯示會話過期消息
- 28. Twilio:如何根據用戶以前的消息在python中用自定義消息回覆用戶消息?
- 29. 如何在用戶登錄之前顯示消息?
- 30. GWT活動沒有得到取消註冊,以便MayStop()文本不斷出現
遺憾的是我們並沒有真正改變頁面,只是顯示在同一頁面的不同部分。 – 2010-11-11 21:18:29