我尝试更改页面的网址而无需重新加载页面。如果我在控制台中尝试此操作,则URL正在更改:
if (localStorage.getItem('product') !== null) {
storedVariable = localStorage.getItem('product');
url = window.location.href;
url += '?product=' + storedVariable;
}
window.history.pushState("", "", url);
但是当我将此代码添加到Google代码管理器时,我的网页的网址是默认的。我该如何解决?
答案 0 :(得分:0)
可能与:mdn History_API
有关pushState()接受三个参数:状态对象,标题(当前被忽略)和(可选)URL。让我们更详细地研究这三个参数中的每一个:
state对象 - state对象是一个JavaScript对象,它与pushState()创建的新历史记录条目相关联。每当用户导航到新状态时,就会触发popstate事件,并且事件的state属性包含历史条目的状态对象的副本。
state对象可以是任何可以序列化的对象。因为Firefox将状态对象保存到用户的磁盘,因此可以在用户重新启动浏览器后恢复它们,因此我们在状态对象的序列化表示上强加了640k字符的大小限制。如果将序列化表示形式大于this的状态对象传递给pushState(),则该方法将引发异常。如果您需要更多空间,建议您使用sessionStorage和/或localStorage。