如何检测用户点击浏览器返回按钮?
我有一个Ajax应用程序,如果我能够检测到用户点击返回按钮的操作,我可以显示相应的数据。
最好使用PHP、JavaScript等语言进行解决。任何语言的解决方案都可以,只要我能够将其翻译成PHP/JavaScript即可。
编辑:请参考以下内容:
哇,所有的答案都很好。我想使用Yahoo,但我已经在使用Prototype和Scriptaculous库,不希望再添加更多的Ajax库。但它使用了,这给了我一个很好的指针来编写自己的代码。
如何检测用户点击浏览器返回按钮?
我有一个Ajax应用程序,如果我能够检测到用户点击返回按钮的操作,我可以显示相应的数据。
最好使用PHP、JavaScript等语言进行解决。任何语言的解决方案都可以,只要我能够将其翻译成PHP/JavaScript即可。
哇,所有的答案都很好。我想使用Yahoo,但我已经在使用Prototype和Scriptaculous库,不希望再添加更多的Ajax库。但它使用了,这给了我一个很好的指针来编写自己的代码。
我最喜欢的框架之一是Yahoo! 浏览器历史管理器。你可以注册事件,当用户返回到该状态时,它会回调给你。如果您想学习它的工作原理,这里有一篇有趣的博客文章介绍了 Yahoo! 设计此框架所做的决策。
检查是否返回了需要刷新的缓存页面最简单的方法是添加一个将被缓存的隐藏输入元素,并检查它是否仍然具有默认值。
只需在您的body标签中放置以下内容。我把我的放在结束标签之前。
<input type="hidden" id="needs-refresh" value="no">
<script>
onload=function(){
var e = document.getElementById("needs-refresh");
if (e.value === "yes")
location.reload();
e.value = "yes";
}
</script>
$_SESSION
中设置了一个名为$wasPosted
的变量,并将其值设为false
。$wasPosted
设置为true
。header(location:)
请求之前,都会先将$wasPosted
设置为true
。$wasPosted
是false
,那么页面是通过使用“后退”或“前进”按钮加载的。Dojo工具包具有用于处理JavaScript的此功能。我认为在纯PHP中处理它没有好的方法。
这是它们的文档页面:http://dojotoolkit.org/book/dojo-book-0-9/part-3-programmatic-dijit-and-dojo/back-button-undo