【问题标题】:dropdown value changes after refresh in Chrome but not in Firefox在 Chrome 中刷新后下拉值更改,但在 Firefox 中没有
【发布时间】:2015-02-04 18:19:59
【问题描述】:

我正在使用本地存储来存储我的员工的活动日志。他们从下拉框中选择他们的活动,他们选择的活动在 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>

【问题讨论】:

    标签: javascript html google-chrome firefox local-storage


    【解决方案1】:

    该问题与本地存储无关,而是在软刷新页面时 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>
    

    【讨论】:

    • 完美运行...谢谢!
    • 很高兴听到这个消息。如果您的问题已得到解决,请接受答案和/或投票。
    猜你喜欢
    • 2023-03-11
    • 2016-03-03
    • 2016-10-19
    • 1970-01-01
    • 2014-06-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多