将查询参数添加到url的末尾,并使用pushState进行查询。

问题描述 投票:0回答:1

我有一个页面,允许我通过 "过滤器 "标签来过滤帖子。我需要添加任何点击的过滤器作为查询参数。例如,网址看起来是这样的:domain.comcategoryfiltered。

当用户点击其中一个过滤器时,我目前的页面将过滤器添加到最后,相应的结构为。domain.com/category/filtered?filter=goods 通过使用pushState()函数,首先检查了一下 ?filter= 并不是已经可以通过做。

if(window.location.href.indexOf("=") > -1) {
    window.history.pushState({}, window.location, "?filter=" + item.slug);
}

然而,我需要能够在最后添加额外的过滤器,这样url就会类似于: domain.com/category/filtered?filter=goods&services

我试图通过将附加参数推送到url上来实现。

else {
window.history.pushState({}, window.location, "&" + item.slug);
}

但这是无效的。

我怎样才能在当前url的末尾添加附加参数,使每个连续的过滤器都能像这样添加。&services&etc

javascript pushstate window.location
1个回答
0
投票

在一个数组中存储项目,如 const filters = ['services', 'goods', 'etc']. 您可以使用推送方法添加到它 filters.push('something') 而比使用 "?filter=" + fiters.join('&'). 当您想清除阵列时,您可以使用 filters.length = 0.

© www.soinside.com 2019 - 2024. All rights reserved.