2014-04-19 122 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 
} 

我用这个在我的个人网站,它为我工作得很好。

相关问题