jquery 保存并刷新存储在本地存储中的语言首选项

uqdfh47h  于 2023-11-17  发布在  jQuery
关注(0)|答案(1)|浏览(119)

我在尝试实现语言切换器/首选项时遇到了一点问题
我做了一个本地存储项目,但有一个问题,因为重新加载的需要。

function lang_displayed_settings() {
  if (localStorage.getItem("language") === "pl") {
    window.location.hash = "#pl"
    location.reload();
  }
}

字符串
我试图做一个窗口加载的功能,以获得一个首选语言的项目,但我不能真正使它自动重新加载。或者我得到一个循环时,窗口只是重新加载加载。我需要一个功能,它的工作在href s等。
现在我不知道我可以改变什么让它工作!希望有人比我做得更好。
(code从上面是一个明确的,在我面前无用的尝试)

iqjalb3h

iqjalb3h1#

如果localstorage中的language项已经设置为"pl",您的代码将重新加载,并会发现属性再次设置为相同的值,并将继续重新加载页面。解决方案是添加另一个if条件来检查window.location.hash中是否存在#pl,这样当哈希值已经设置时,您就不必重新加载页面:

function lang_displayed_settings() {
  if (localStorage.getItem("language") === "pl") {
    if (window.location.hash === "#pl") {
      return;
    } else {
      window.location.hash = "#pl";
      return location.reload();
    }
  }
}

字符串
如果您希望语言设置支持多种语言,可以在第一次加载页面时从localsorage加载它,然后运行哈希逻辑,如下所示:

window.onload(() => {
    const lang = localStorage.getItem("language")
    if (window.location.hash === `#${lang}`) {
        return;
      } else {
        window.location.hash = `#${lang}`;
        return location.reload();
      }
})

相关问题