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

时间:2014-01-23 09:22:04

标签: c# javascript asp.net

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

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

但如果按“Ctrl + F5”,下拉列表不会改变..

分析后我发现Ctrl + F5正在强行重装..

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

怎么做......?我需要识别哪个浏览器..因为这只发生在Firefox ..

另外,在哪个(哪个事件)我要做那个编码..?

2 个答案:

答案 0 :(得分:0)

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

然后,您必须在使用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 here

答案 1 :(得分:0)

试试这个。这将以相同的方式处理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");
    }

}