为什么浏览器后退按钮不指向上次查看的页面?

时间:2016-08-30 19:00:39

标签: php jquery back-button

我正在网站上工作(因为我最初没有构建它,所以重做可能是一个更好的词)并且遇到了以下奇怪的情况:

用户转到显示当前事件列表的页面。这被称为“什么是开”。

我添加了一个指向此页面的链接,该链接可以用户以典型的日历格式显示本月的完整活动日历。此页面称为“事件日历”。一旦进入页面,他们还可以选择他们想要查看的月份以及他们感兴趣的事件类型。

用户可以单击任何日期中列出的事件,以导航到包含事件详细信息的页面。 (页面是带有查询的事件详细信息,用于提取相关事件。)我在事件列表下面的页面添加了一个后退按钮,它将返回显示月份和他们刚查看的搜索结果的日历。没有问题 - 我正在使用PHP $ _SERVER ['HTTP_REFERER']并且完美无缺。

这是问题 - 如果我只是在该按钮上执行了back()或history.go(-1)链接,它会将用户一直带回“whats-on”。单击浏览器后退按钮时会发生同样的情况。它只是完全跳过“事件日历”。

这显然发生在其他情况下的网站上,例如商家信息和搜索。

显然我不希望这种行为 - 我希望后退按钮能够像以前那样去往之前浏览过的页面!

我无法想到导致这种情况的代码中的任何内容,但原始网站开发人员包含了大量的JQuery包,例如jQuery UI,我想知道是否有什么东西可能会干扰默认的后退按钮行为。这有可能吗?

我想我想知道的是有任何JQuery代码可以改变后退按钮的行为,所以我可以追捕并杀死它!

只是想知道从哪里开始寻找。

1 个答案:

答案 0 :(得分:0)

显然我能让它工作的唯一方法是使用

操纵浏览器历史记录
    history.pushState({}, '', 'event-calendar?<plus whatever query was used to pull the data>'); 

在日历页面上。

这似乎有效,但这是一个愚蠢的解决方法。希望我能找到原始问题。