【发布时间】:2018-08-20 17:58:42
【问题描述】:
我正在尝试创建一个弹出模式,其中包含根据用户选择重定向的位置选项。我正在尝试将选定的 URL 作为首选项存储在 localstorage 中,这样用户只需选择一次他们的位置,而不必在每次访问该站点时都处理弹出窗口。
每次我在浏览器中测试时,重定向都会发生,但是当我输入 console.log 以打印出 localStorage 值时,它会返回 null 我在控制台中没有收到任何错误,所以我没有太多离开。
我的代码如下,我已经包含了一个指向 JS Fiddle here 的链接,非常感谢任何帮助!
<div class="modal-body">
<form name="siteSelector">
<select onchange="save(); go()" id="site" name="site" SIZE="1" class="form-control form-control-lg">
<option value="non-value">Choose Site</option>
<option value="https://www.google.com">Google</option>
<option value="https://www.amazon.com/">Amazon</option>
<option value="https://www.guitarcenter.com/">Guitar Center</option>
</select>
<script>
function save(){
document.getElementsByName("site").onchange = function(){
localStorage.setItem('site', document.getElementsByName("site"));
}
if (localStorage.getItem('site')) {
document.getElementsByName("site").options[localStorage.getItem('site')].selected = true;
}
}
function go(){
location = document.siteSelector.site.options[document.siteSelector.site.selectedIndex].value
}
</script>
</form>
</div>
【问题讨论】:
-
localStorage.setItem('site', document.getElementsByName("site"));存储整个<select>元素,而不是所选选项的值。