繁体   English   中英

按F5或刷新按钮时强制重新加载浏览器

[英]Force reload the browser when pressing F5 or refresh button

我正在使用ASP.NET和C#开发Web应用程序。

我遇到一个问题,当我按下“ F5”或“刷新按钮”时,在下拉列表中更改值后,它又变回第一个值。

但是,如果我按“ Ctrl + F5”,则下拉列表不会更改。

经过分析,我发现Ctrl + F5正在强制重新加载。

所以现在我想在按F5或刷新按钮或同时按Ctrl + R时做同样的事情。

怎么做..? 我还需要确定使用哪个浏览器。因为这仅在Firefox中发生。

另外,我在哪里(哪个事件)进行编码..?

我认为解决此问题的最佳方法是使用Javascript中的onunload (或onbeforeunload )事件将下拉列表的选定值保存到Web存储中。

然后,您只需使用onload事件在页面加载后将其取回即可。

编辑-示例代码

因此,这是您的下拉列表:

<select id="list">
    <option>A</option>
    <option>B</option>
    <option>C</option>
</select>

现在,让我们看看Js:

window.onload = function() {
    window.document.getElementById('list').selectedIndex = localStorage['mySavedValue'];
};

window.onunload = function() {
    localStorage['mySavedValue'] = window.document.getElementById('list').selectedIndex;
};

我在firefox 26.0(linux)的本地页面上对其进行了测试,并且可以正常工作。 这里查看工作的jsFiddle

尝试这个。 这将以相同的方式对待F5和Ctrl + F5。

<script language="javascript" >
var ctrl = false;
document.onkeydown = function() {
    if (event.keyCode == 17) {
        ctrl = true;
    }

    if (event.keyCode == 116 && ctrl == true) {
        //alert("ctrl+f5");
        window.location.relord();
        ctrl = false;
    }
    else if (event.keyCode == 116 && ctrl == false) {
        window.location.relord();
        //alert("f5");
    }

}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM