如何更改浏览器URL而不更改历史记录中的任何内容

时间:2015-08-21 14:16:34

标签: javascript java jquery url browser-history

您可能认为这是重复的,但事实并非如此。我已经看到其他有关使用replaceState()更改浏览器网址的SO答案,但我遇到了问题......

在我网站的一个网页上,它会收到很多参数,因此链接会一直打开......我做了replaceState(),它缩短了网址。那很有效。如果我继续使用另一个链接,并且我在历史记录中返回,则该网址仍将与我在replaceState()上定义的相同,并且页面会出现404错误。有没有办法只是加载链接,然后暂时更改URL,以便用户没有看到一个巨大的链接,但系统使用实际的URL?

我正在使用JSP,请继续使用JavaScript,JQuery或Java给我答案。

1 个答案:

答案 0 :(得分:1)

您可以将参数存储在localstorage(即cookie)中,然后让您的下一页从localstorage中取消它们,从而减少第一个位置所需的URL大小。示例代码(从Storing Objects in HTML5 localStorage中窃取):

// add to storage
localStorage.setItem('myAttibute', 'acceptable');

// Retrieve the object from storage (on another page)
var sMyAttibute= localStorage.getItem('myAttibute');

alert("myAttibute=" + sMyAttibute);

希望它会告诉你我的属性是可以接受的。