簡體   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