Javascript localStorage导致函数被无限次加载

Javascript localStorage导致函数被无限次加载,javascript,function,window.location,Javascript,Function,Window.location,我正在根据选定的值过滤用户看到的内容。用户可以在consumer和commercial之间进行选择,代码应将“/commercial”添加到商业用户的URL中,并将“/consumer”添加到消费者用户的URL中 这是我当前使用的代码,每次加载页面时都会运行下面的函数,从而产生无限循环 /* Hides non-commercial products */ function commercial() { window.location.assign(window.location.origi

我正在根据选定的值过滤用户看到的内容。用户可以在consumer和commercial之间进行选择,代码应将“/commercial”添加到商业用户的URL中,并将“/consumer”添加到消费者用户的URL中

这是我当前使用的代码,每次加载页面时都会运行下面的函数,从而产生无限循环

/* Hides non-commercial products */
function commercial() {
  window.location.assign(window.location.origin  + "/collections/{{ collection.handle }}/commercial");
 localStorage.setItem("saved", "0");
}
/* Hides non-consumer products */
function consumer() {
  window.location.assign(window.location.origin + "/collections/{{ collection.handle }}/consumer");
  localStorage.setItem("saved", "1");
}
/* Shows all products */
function reset() {
  window.location.assign(window.location.origin + "/collections/{{ collection.handle }}");
  localStorage.removeItem("saved");
}
更新的代码:LocalStorage导致每次加载页面时都会运行上述函数,从而导致无限循环。下面是mt LocalStorage获取密钥代码的保存值:

    /* Remember last clicked button and store it in LocalStorage */
window.addEventListener('load', (event) => {
  const value = localStorage.getItem("saved");
  if (value == "0") {
    commercial();
  } else if (value == "1") {
    consumer()
  } else {
    reset()
  }
});
这就是代码输出的内容:(DJI只是集合的一个示例)


window.location.href
保存完整的URL,因此它将附加到以前的URL,而不是使用
window.location.origin

window.location.assign(window.location.origin  + "/commercial");

这些函数在哪里运行?在运行函数之前是否检查了localstorage?@FredStark,只需单击一个特定的按钮即可运行函数。LocalStorage之前已被选中,并被同一个按钮单击所覆盖。@Ravikumar谢谢,我现在可以让它显示正确的URL,但它现在被卡在一个无限循环中,导致页面继续重新编码。这就是我所做的。它需要前面的/collections部分<代码>/*隐藏非商业产品*/function commercial(){window.location.assign(window.location.origin+“/collections/{collection.handle}}/commercial”);localStorage.setItem(“saved”,“0”);}/*隐藏非消费品*/function consumer(){window.location.assign(window.location.origin+“/collections/{collection.handle}}/consumer“;localStorage.setItem(“saved”,“1”);}你是什么意思?你能详细解释一下吗?好的,一旦我进入一个带有函数的页面,它会带我到正确的URL,但是函数会继续带我到页面,即使我已经在上面了,导致它被重新加载。你是如何解析这个
window.location.origin+“/collections/{{collection.handle}}/commercial”
?你是说除了onclick之外的
`${window.location.origin}/collections/${collection.handle}/commercial`
,你在任何地方调用这些方法吗?
window.location.assign(window.location.origin  + "/commercial");