2014-04-19 37 views
1

最好通過PHP,我想知道用戶是否使用後退按鈕來訪問一個頁面,以便我可以保存他們離開時所處頁面的狀態。它是一個使用AJAX的搜索頁面,因此URL中沒有任何內容可以讓我重新填充頁面上的輸入以重新創建之前提交的表單。有沒有辦法使用會話數據和用戶是否按下瀏覽器後退按鈕來填充用戶填入的輸入字段的知識?是否有可能知道用戶是否按下了後退按鈕以進入頁面?

+1

您無法確切知道他們是否使用了後退按鈕,但您當然可以使用JavaScript保存狀態。您也可以考慮將其保存在本地存儲中。 – Brad

+1

[this](http://demos.jquerymobile.com/1.1.1/docs/pages/page-cache.html)可能與您有關。 – 13ruce1337

+1

我沒有經驗在PHP中設置它,但許多服務器會檢測用戶何時訪問過該站點,並用'304 not modified'響應代碼進行響應。你當然可以掛鉤在服務器端,並且你可以檢測到[頁面已被請求從JavaScript](http://stackoverflow.com/questions/8571227/),但我不太確定,如果你可以檢測到載入執行所述javascript的頁面的* previous * page加載的狀態。 –

回答

1

是的,但我只知道如何在JavaScript中做到這一點。但是如果你使用的是AJAX,那麼你應該可以使用它。

當你加載你的AJAX頁面,這樣做:

history.pushState(postData, "Search", pageURL); 

如果上述情況,POSTDATA將是您需要形式的信息,最好是JSON。

那麼這個事件將處理後退按鈕事件

window.onpopstate =function(event) { 
    console.log(event); // log the event to the console to see what data you'll need 
} 

我用這個在我的個人網站,它爲我工作得很好。

相關問題