带有 cookie 和更改能力的下拉重定向

Lub*_*ura 6 html javascript cookies jquery

我搜索了很多主题,但没有找到我的问题的确切解决方案。

我需要创建一个下拉菜单,它将放置在整个网站上,因为您始终可以将您的位置更改为另一个城市以查看报价。我想创建一个下拉菜单,客户可以在其中选择他的城市进行本地交付。此下拉列表将放置在介绍页面和提供报价的每个页面上。用户选择城市后,将创建一个 cookie,用户将被重定向到他选择的页面。他选择的城市应该永远记住。

我的问题是什么?让我解释。

现在,当我选择城市,例如它的纽约并且我的下拉菜单位于纽约的页面以及城市更改时,我一直被重定向并且它永远不会结束。所以我得到无限重定向。

目前有效的第二件事。例如,当您访问主 URL 地址时 --> example.com 如果您之前选择了您的城市,它应该会将您重定向到您的城市。因此,如果您之前选择了纽约,它应该将您重定向到 example.com/kategoria-produktu/cadca/

总结一下:一切都很好,但是当这个下拉菜单位于整个站点时,我一直被重定向到我选择的页面,这就是我需要消除的。

请问有什么想法吗?

我的代码在这里

<script type="text/javascript">
if (localStorage && localStorage.country) {
    location = localStorage.country;    
}

function formChanged(form) {
    var val = form.options[form.selectedIndex].value;
    if (val !== 'non-value') {
      if (localStorage) {
        localStorage.country = val;
      }
      location = val;
    }
}
</script>

<FORM NAME="form1">
<select onchange="formChanged(this);" NAME="country" SIZE="1">
<OPTION VALUE="non-value">Select delivery city
<OPTION VALUE="/kategoria-produktu/cadca/">New York
<OPTION VALUE="/kategoria-produktu/brno/">Los Angeles
<OPTION VALUE="/kategoria-produktu/bratislava/">Tokyo
</select>
</FORM>
Run Code Online (Sandbox Code Playgroud)

谢谢

Lub*_*ura 2

通过编辑代码解决

<script type="text/javascript">
if(location.href.indexOf(localStorage.country) == -1){
location.href = localStorage.country
}

function formChanged(form) {
var val = form.options[form.selectedIndex].value;
if (val !== 'non-value') {
if (localStorage) {
localStorage.country = val;
}

if (!location.href.indexOf(val)) {    
location = val;
}
}
}

</script>
Run Code Online (Sandbox Code Playgroud)