簡體   English   中英

如何使用 jquery 或 javascript 檢查頁面是否正在重新加載或刷新?

[英]How to check page is reloading or refreshing using jquery or javascript?

我必須對頁面刷新或重新加載進行某種操作。 那是當我點擊下一頁或過濾或刷新網格時。 我需要在此事件上顯示一些確認框。

是否有任何事件可以告訴您頁面正在執行文件管理? 刷新還是分頁? 使用 javascript?

謝謝

如果它正在刷新(或者用戶正在離開網站/關閉瀏覽器), window.onunload將觸發。

// From MDN
window.onunload = unloadPage;
function unloadPage()
{
    alert("unload event detected!");
}

https://developer.mozilla.org/en/DOM/window.onunload

如果您只想要一個確認框以允許他們留下,請使用:

window.onbeforeunload = function() {
    return "Are you sure you want to navigate away?";
}

您可以創建一個隱藏字段並在第一頁加載時設置其值。 再次加載頁面時,您可以檢查隱藏字段。 如果它是空的,那么頁面是第一次加載,否則它會被刷新。 像這樣的一些事情:

HTML

<body onLoad="CheckPageLoad();">

    <input type="hidden" name="visit" id="visit" value="" />

</body>

JS

function CheckPageLoad() {
    if (document.getElementById("visit").value == "") {
        // This is a fresh page load
        document.getElementById("visit").value = "1";
    }
    else {
        // This is a page refresh
    }
}​

我認為有一些關於解決這個問題的澄清說明很重要。

首先,刷新/隱藏字段系統在新頁面副本的開頭和之后工作,而不是在離開第一個頁面副本時工作。

根據我對這種方法和其他一些方法的研究,主要由於隱私標准,無法在卸載期間或更早檢測到頁面刷新。 僅在新頁面加載后及以后。

我有一個類似的問題請求,但基本上它是在頁面退出時終止會話,並且在查看時發現瀏覽器將重新加載/刷新視為兩個不同的部分:

  1. 關閉當前窗口(觸發 onbeforeunload 和 onunload js 事件)。
  2. 請求該頁面,就好像您從未擁有它一樣。 服務器上的會話當然沒有問題,但是沒有查詢字符串更改/添加到頁面最后使用的 url 的值。

這些也以這種順序發生。 只有自定義或非標准瀏覽器的行為會有所不同。

$(function () {
    if (performance.navigation.type == 1) {
        yourFunction();
    }
});

有關performance.navigation返回的PerformanceNavigation對象的更多信息

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM