我正在使用ASP.NET和C#开发一个Web应用程序。
我遇到一个问题,当我按下“F5”或“刷新按钮”时,在更改下拉列表中的值后,它会变回第一个值。
但如果按“Ctrl + F5”,下拉列表不会改变..
分析后我发现Ctrl + F5正在强行重装..
所以现在我想按F5或刷新按钮或Ctrl + R也要做同样的事情。
怎么做......?我需要识别哪个浏览器..因为这只发生在Firefox ..
另外,在哪个(哪个事件)我要做那个编码..?
答案 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");
}
}