下拉菜单可记住选择并重定向用户,并能够更改所选国家/地区

我的问题是,当我有下拉菜单并从选择下拉列表中选择某个城市时,我会被重定向到城市页面,并且我的选择会保存到本地存储中,因此每次我再次访问网站时,我都会被重定向到我选择的城市我的第一次网站访问。这可以。


我需要的是将此选择菜单放在网站的每个页面上,并且我需要能够随时更改它。因此,当我目前在纽约但明天我将在洛杉矶并且我想订购一些食物时,我只需更改选择菜单中的城市,它将设置一个新的主要网站主页重定向到洛杉矶 URL 地址。


我尝试将下拉列表放入每个页面 - 标题中,但是当我将其放在那里时,我陷入了重定向循环,因此当我第一次访问主页时选择纽约市时,下拉列表位于“新”页面上纽约(例如在标头中)它不断将我从纽约重定向到纽约,并具有无限重定向循环,这就是我需要消除的。


我的代码在这里。有什么想法吗?提供代码编辑会很棒,因为我是 JavaScript 新手,我花了很长时间才解决这个问题。非常感谢!


<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>

更新 - 这工作正常,但当我位于当前页面网址时,此脚本没有显示实际选择的选项。有什么想法如何解决这个问题吗?


<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>


 <FORM NAME="form1">

 <select id="saleTerm" onchange="formChanged(this); location = 

 this.options[this.selectedIndex].value;" NAME="country" SIZE="1">

 <OPTION VALUE="non-value">Select delivery city

 <OPTION VALUE="/kategoria-produktu/cadca/">Čadca

 <OPTION VALUE="/kategoria-produktu/brno/">Brno

 <OPTION id="bratislava" VALUE="/kategoria-produktu/bratislava/">Bratislava

 </select>

 </FORM>


万千封印
浏览 108回答 2
2回答

FFIVE

代替!location.href.indexOf(val)写location.href.indexOf(val)&nbsp;===&nbsp;-1

森栏

正确答案如下。代码<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><FORM NAME="form1"><select id="saleTerm" onchange="formChanged(this); location = this.options[this.selectedIndex].value;" NAME="country" SIZE="1"><OPTION VALUE="non-value">Select delivery city<OPTION VALUE="/kategoria-produktu/cadca/">Čadca<OPTION VALUE="/kategoria-produktu/brno/">Brno<OPTION id="bratislava" VALUE="/kategoria-produktu/bratislava/">Bratislava</select></FORM>
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript