Pushstate添加了新的参数,如何防止这种情况?

时间:2019-02-10 18:25:38

标签: javascript pushstate

我有问题,我的选项卡带有pushstate:

history.pushState(null, null, '#/' + $(this).attr('href').substring(1));

当我想使用以下方式更改此pushstate时:

  function updateUrl() {
    history.pushState(null, null, `${location.href}/?page=` + this.page);
  }

当我单击分页按钮时。我得到这样的链接:http://example.com/foo/bar/#revs/?page=1/?page=2/?page3

<button onclick="updateUrl(1)">1</button>
<button onclick="updateUrl(2)">2</button>

但是我只需要更改参数page。我该如何解决?

1 个答案:

答案 0 :(得分:0)

使用location.href只会添加当前链接。 使用以下链接构造链接:

location.origin + location.pathname + location.hash.split('/')[0] + '/?page=' + this.page

详细了解location对象。

您始终可以在浏览器控制台中访问location对象,以了解其结构。