2012-01-03 64 views
0

在jQuery Mobile中,我們可以使用data-rel =「back」或data-add-back-btn =「true」輕鬆創建一個「後退」按鈕。然而,是否有辦法讓我們也傳回一些自定義用戶點擊後退按鈕時的數據?如何將數據與後退按鈕一起傳遞?

一個常見的情況是我們使用Ajax從page1轉換到page2。在頁面2中,用戶執行一些操作,並且當用戶單擊「返回」按鈕時,頁面2中的這些操作的結果應該被傳遞迴頁面1。

到目前爲止,我還無法找到合適的解決方案。 azicchetti的插件jquerymobile-router在你想從頁面1到頁面2傳遞url參數(讓頁面2從page1獲得一些知識)時非常有用。但我不知道它如何適用於反向(第2頁返回第1頁)

+0

傳統上,後退按鈕會從堆棧彈出當前上下文並恢復到上一個​​上下文。這聽起來像你真正想要的是POST到前一個URL。我不知道jQuery足夠好說這是它如何實現它的後退按鈕,但我猜你必須使用一些其他機制來做你想做的。 – TMN 2012-01-03 16:05:08

+0

POST或GET(與服務器相關的任何操作)都假定在page2中完成,因此page1僅僅是在客戶端上做了一些事情,並使用了page2的結果。 – Antony 2012-01-03 16:21:21

回答

1

我會爲此使用Cookie或會話。另一種可能性可能是:本地存儲。

+0

Cookies /會話/本地存儲的唯一問題是可靠性。我的意思是人們可以在手機上禁用Cookies,並拒絕給定網站的本地存儲。至於會話,如果移動失去連接,客戶端將失敗。 我正在考慮使用全局JavaScript變量(即var MyWebApp = {}),並在頁面之間共享該全局變量。如果用戶刷新頁面,這將不起作用。 – Antony 2012-01-03 16:24:00

+0

那麼,我結束了三個級別的後備機制 在索引移動頁面中,我有一個全局js變量+一些處理設置/獲取localStorage的邏輯。另外,我還加載了jquery.cookie.js。因此,在pageshow事件中,我檢查了 1.如果全局變量具有我需要的自定義數據。如果不是 2.檢查cookie的數據..如果不是 3.檢查localStorage 希望這應該是足夠的。 – Antony 2012-01-03 23:20:05