Javascript 是否有可能知道用户是否按下后退按钮进入页面?

Javascript 是否有可能知道用户是否按下后退按钮进入页面?,javascript,php,ajax,Javascript,Php,Ajax,最好是通过PHP,我想知道用户是否使用了后退按钮来访问页面,这样我就可以保存他们离开时所在页面的状态。这是一个使用AJAX的搜索页面,因此URL中没有允许我重新填充页面上的输入以重新创建以前提交的表单的内容。是否有一种方法可以使用会话数据和用户是否按下浏览器后退按钮来填充用户填写的输入字段的知识?是的,但我只知道如何使用JavaScript。但是如果您使用的是AJAX,那么您应该能够使用它 加载AJAX页面时,请执行以下操作: history.pushState(postData, "Searc

最好是通过PHP,我想知道用户是否使用了后退按钮来访问页面,这样我就可以保存他们离开时所在页面的状态。这是一个使用AJAX的搜索页面,因此URL中没有允许我重新填充页面上的输入以重新创建以前提交的表单的内容。是否有一种方法可以使用会话数据和用户是否按下浏览器后退按钮来填充用户填写的输入字段的知识?

是的,但我只知道如何使用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
}

我在我的个人网站上使用它,它对我来说很好。

你不能确定他们是否使用了后退按钮,但你当然可以用JavaScript保存状态。您也可以考虑在本地存储中保存它。可能与您有关。我没有在PHP中设置此功能的经验,但许多服务器会检测用户何时访问了该站点,并使用
304未修改的
响应代码进行响应。您当然可以在服务器端钩住它,并且可以在出现问题时检测到它,但我不太确定您是否可以检测到上一个页面加载的状态,该页面加载了执行上述javascript的页面。在客户端,您的问题与我在这里回答的问题非常相似: