无需重新加载页面即可更改URL

时间:2015-10-14 08:12:12

标签: javascript jquery google-analytics google-tag-manager

我尝试更改页面的网址而无需重新加载页面。如果我在控制台中尝试此操作,则URL正在更改:

if (localStorage.getItem('product') !== null) {
    storedVariable = localStorage.getItem('product');
    url = window.location.href;
    url += '?product=' + storedVariable;
}
window.history.pushState("", "", url);

但是当我将此代码添加到Google代码管理器时,我的网页的网址是默认的。我该如何解决?

1 个答案:

答案 0 :(得分:0)

可能与:mdn History_API

有关
  

pushState()接受三个参数:状态对象,标题(当前被忽略)和(可选)URL。让我们更详细地研究这三个参数中的每一个:

     
      
  • state对象 - state对象是一个JavaScript对象,它与pushState()创建的新历史记录条目相关联。每当用户导航到新状态时,就会触发popstate事件,并且事件的state属性包含历史条目的状态对象的副本。

         

    state对象可以是任何可以序列化的对象。因为Firefox将状态对象保存到用户的磁盘,因此可以在用户重新启动浏览器后恢复它们,因此我们在状态对象的序列化表示上强加了640k字符的大小限制。如果将序列化表示形式大于this的状态对象传递给pushState(),则该方法将引发异常。如果您需要更多空间,建议您使用sessionStorage和/或localStorage。

  •   
相关问题