Shopify建议使用此代码进行"排序依据"下载他们的收藏页面:https://gist.github.com/carolineschnapp/11352987
我正在使用Shopify Slate构建一个新主题,这段代码对我不起作用。幸运的是,另一位开发人员对此进行了评论并提供了更好的代码。这是代码:
document.querySelector('#sort-by').addEventListener('change', function() {
const urlSearchParams = new URLSearchParams(window.location.search);
urlSearchParams.set(this.name, this.value);
window.location = `?${urlSearchParams}`;
});
不幸的是,由于没有添加" sort_by"到搜索参数。我将此代码的倒数第二行改为:
window.location = `?sort_by${urlSearchParams}`;
这很有效,但每当我尝试更改参数时,页面都会不断重新加载并向网址添加多个" sort_by"(例如?sort_bysort_by =降价和降价=标题-升序)
我有什么方法可以更改此代码,以便" sort_by"只在网址中出现一次?
答案 0 :(得分:0)
如果您将window.location.search
与:
window.location.search.indexOf("sort_by") > -1
? window.location.search.replace(/sort_by/gi,"")
: window.location.search
所以它变成了:
new URLSearchParams(
window.location.search.indexOf("sort_by") > -1
? window.location.search.replace(/sort_by/gi,"")
: window.location.search
)