2010-11-23 167 views
0

当我加载我的php页面时,我追加了一些数据。例如MyPage.php?value = something。 正如预期的那样,当我使用后退按钮时,它总是加载相同的数据。我不想那样。我希望在页面加载之后,我应该能够将历史记录更改为仅存储MyPage.php而不附加数据。因此,现在,当我使用后退按钮时,它只会加载MyPage.php。我怎么能做到这一点 - javascript,jquery,php,什么?更改Javascript的历史记录

如果有办法做到这一点,而不触及历史对象,那也很好。我只是假设它会调整一些历史记录。如果需要在客户端或服务器端进行调整,我也可以。

+0

您知道,您的用户可能会认为浏览器历史记录是**功能**。即使你想禁用它,他们也可能不会,最终浏览器在他们的计算机上运行,​​而不是你的。 – 2010-11-23 17:07:50

回答

1

据我所知,不可能像这样调整历史,也不是处理这个问题的好方法。

你可以使用cookie来确定何时页面被加载两次以上,或者将数据存储在一个会话变量,而不是,并删除它一旦你处理完成。

1

我假设数据是通过GET方法追加的。使用POST不会在MyPage.php后添加文本,但仍然可以将数据传递到页面。

0

历史就是历史。要改变这种做法有点麻烦(如果你这样做的话,你可能还会遇到其他问题)。

最好是要么没有查询字符串在所有,用js或服务器端逻辑来确定的动作,或以具有或JS服务器端逻辑忽略第二请求。

0

如果你对调整历史很好,那么你可以看看这个。

history.replaceState({}, document.title, "MyPage.php"); 

这会将当前window.location重写为“MyPage.php”而不刷新页面。