Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/423.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 刷新Chrome而不是Firefox后,下拉列表值会发生变化_Javascript_Html_Google Chrome_Firefox_Local Storage - Fatal编程技术网

Javascript 刷新Chrome而不是Firefox后,下拉列表值会发生变化

Javascript 刷新Chrome而不是Firefox后,下拉列表值会发生变化,javascript,html,google-chrome,firefox,local-storage,Javascript,Html,Google Chrome,Firefox,Local Storage,我正在使用本地存储来保存员工的活动日志。他们从下拉框中选择活动,在Firefox中刷新后,他们选择的活动保留在下拉框中,但在Google Chrome中返回默认状态。Chrome中是否有需要更改的设置,以便保留选定的活动?这是我给一名员工的代码 <script> function foo1(a) { //alert(a.value); var d = new Date(); var c = document.getElementById("time1").innerHTML

我正在使用本地存储来保存员工的活动日志。他们从下拉框中选择活动,在Firefox中刷新后,他们选择的活动保留在下拉框中,但在Google Chrome中返回默认状态。Chrome中是否有需要更改的设置,以便保留选定的活动?这是我给一名员工的代码

 <script>
 function foo1(a) {
 //alert(a.value);
 var d = new Date();
 var c = document.getElementById("time1").innerHTML;
 c = c + a.value + " was selected at: " + d.toString();
 document.getElementById("time1").innerHTML = c + '<br/>';
 localStorage.setItem(a.value, d.toString());
 }

 function load1() {
 var c = "Wholesale Pictures.: " + localStorage.getItem("Wholesale Pictures.") +   

 '<br/>';
 c += "NS Pictures.:" + localStorage.getItem("NS Pictures.") + '<br/>';
 c += "NS ERO's.:" + localStorage.getItem("NS ERO's.") + '<br/>';
 c += "BL ERO's.:" + localStorage.getItem("BL ERO's.") + '<br/>';
 c += "Wholesale Staging.:" + localStorage.getItem("Wholesale Staging.") + '<br/>';
 c += "Wholesale Scan.:" + localStorage.getItem("Wholesale Scan.") + '<br/>';
 c += "Sirius Tags.:" + localStorage.getItem("Sirius Tags.") + '<br/>';
 c += "Lunch Break.:" + localStorage.getItem("Lunch Break.") + '<br/>';
 document.getElementById("log1").innerHTML = c;
 }
 </script>

 <div class="david">
 <h2><img src="Images/david.jpg" class="img-circle">&nbsp&nbspDavid</h2>
 <p id="log1"></p>

 <select id="options" class="form-control" onchange="foo1(this)">
 <option>Select Work Area</option>
 <option>NS Pictures.</option>
 <option>NS ERO's.</option>
 <option>BL ERO's.</option>
 <option>Wholesale Staging.</option>
 <option>Wholesale Scan.</option>
 <option>Wholesale Pictures.</option>
 <option>Sirius Tags.</option>
 <option>Lunch Break.</option>
 </select>

 <div class="buttons">
 <button id="log1" onclick="load1()">Activity Log</button>
 </div>
 <p id="time1"><br/></p>
 </div>

职能1(a){
//警报(a值);
var d=新日期();
var c=document.getElementById(“time1”).innerHTML;
在“+d.toString()”处选择了c=c+a.value+”;
document.getElementById(“time1”).innerHTML=c+'
'; setItem(a.value,d.toString()); } 函数load1(){ var c=“批发图片:”+localStorage.getItem(“批发图片”)+ “
”; c++=“NS图片:”+localStorage.getItem(“NS图片”)+”
; c+=“NS ERO:”+localStorage.getItem(“NS ERO”)+“
”; c+=“BL ERO:”+localStorage.getItem(“BL ERO”)+”
; c++=“批发暂存:”+localStorage.getItem(“批发暂存”)+“
”; c++=“批发扫描:”+localStorage.getItem(“批发扫描”)+”
; c++=“天狼星标记:”+localStorage.getItem(“天狼星标记”)+”
; c++=“午休时间:”+localStorage.getItem(“午休时间”)+”
; document.getElementById(“log1”).innerHTML=c; }   

选择工作区 NS图片。 纳塞罗。 贝莱罗的。 批发分期付款。 批发扫描。 批发图片。 天狼星标签。 午休时间。 活动日志



问题与本地存储无关,而是在软刷新页面时,chrome和firefox处理表单值的方式不同。Firefox很好地记住了表单的最后一个值,而chrome则没有。在加载页面时,代码中没有试图将下拉列表设置为最后选择的值的内容。要做到这一点,您必须在代码中添加一些内容。您可以将最后选择的值存储到本地存储器,然后在页面加载时检索它,如下所示:

foo1(a) {
//your code...
localStorage.setItem('lastViewed',a.value);
}
然后在你的页面底部

<script>
var value=localStorage.getItem('lastViewed');
if (typeof value === "string")
{
    document.getElementById('options').value=value;
}
</script>

var value=localStorage.getItem('lastViewed');
如果(值的类型==“字符串”)
{
document.getElementById('options')。value=value;
}

非常好用……谢谢!很高兴听到这个消息。如果您的问题已得到解决,请接受答案和/或投票。