Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/288.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/85.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 支持ajax的页面中的后退按钮_Php_Jquery_Ajax_History_Back Button - Fatal编程技术网

Php 支持ajax的页面中的后退按钮

Php 支持ajax的页面中的后退按钮,php,jquery,ajax,history,back-button,Php,Jquery,Ajax,History,Back Button,我有一个php母版页,现在我正在使用ajax将不同的页面加载到母版页的一个div中。现在我想在从属页面上添加一个后退按钮,这样div就可以加载上一个从属页面,但是后退按钮使用的是history.go(-1),这会使我离开母版页。有人有办法吗。提前谢谢 我使用的代码写在下面。但它在ajax页面中不起作用 <a href="javascript:history.go(-1)">Go back</a> 读取 它提到: pushState,用于在浏览器历史记录中创建“条目”

我有一个php母版页,现在我正在使用ajax将不同的页面加载到母版页的一个div中。现在我想在从属页面上添加一个后退按钮,这样div就可以加载上一个从属页面,但是后退按钮使用的是history.go(-1),这会使我离开母版页。有人有办法吗。提前谢谢

我使用的代码写在下面。但它在ajax页面中不起作用

<a href="javascript:history.go(-1)">Go back</a>

读取

它提到:

  • pushState
    ,用于在浏览器历史记录中创建“条目”(附带状态数据),允许返回到以前保存的特定状态
  • onpopstate
    事件,当您来回浏览浏览器的历史记录时,会触发该事件,并传递以前为历史记录中的特定条目保存的信息(因此您实际上可以读取以前由
    pushState
    为该特定条目保存的数据)
如果
pushState
onpopstate
不适用于您,则仍有一些能力基于
onhashchange
事件工作(无论多么有限)


好消息是你想要实现的目标是绝对可能的。它甚至在许多著名的网站上实现,如Twitter、GitHub、Facebook等。

我的建议是为此使用一个框架,如

在这里,您可以像在服务器端一样设置路由


我觉得这是在ajax站点上实现这一点的最佳方法。

您可以使用更新浏览器中提供的历史记录功能。有几个LIB已经为您提供了功能:

对于JavaScript MVC应用程序:

对于移动网页:

要自行实施解决方案,请执行以下操作:


如果您尝试使用带有“#”的链接,您可能需要查看历史记录插件?也就是说,如果您单击一个链接将您带到另一个从属页面,它将转到。我相信这将启用history.go(-1),因为您的URL每次都会更改。您建议对应用程序的体系结构进行重大更改,以实现相当简单的功能。这不是一种过度杀戮吗?是的,但从长远来看,如果应用程序完全是ajax的话,这将是非常有益的。“这不是过度杀戮吗?”…Yoda?@Tim:我相信Yoda会说“过度杀戮是”或“过度杀戮不是”。我的“这不是一个过度使用吗?”意思是“对于一个简单的任务来说,代码不是太多了吗?”。请参阅更多信息。@GautamK:您可能是对的,但从长远来看,为简单任务实现整个库并不是一个好主意。要实现任何库,他首先需要有充分的理由。