[英]How to get fresh page after pressing F5 or refresh icon in browser in MVC5 when errors occured?
[英]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.