Как проверить страницу перезагрузка или обновление с помощью jquery или javascript?

Мне нужно выполнить какую-либо операцию на странице обновления или перезагрузки. то есть когда я нажимаю следующую страницу или фильтрую или обновляю сетку. Мне нужно показать окно подтверждения над этими событиями.

есть ли какое-либо событие, которое может сказать вам, что страница выполняет filer? обновление или пейджинг? используя javascript?

Спасибо

Ответы

Ответ 1

Если он освежает, 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?";
}

Ответ 2

Вы можете создать скрытое поле и установить его значение при загрузке первой страницы. Когда страница будет загружена снова, вы можете проверить скрытое поле. Если он пуст, страница загружается в первый раз, а затем обновляется. Что-то вроде этого:

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
    }
}​

Ответ 3

Есть некоторые пояснения по поводу борьбы с этим, я думаю, имеют решающее значение.

Во-первых, система обновления/скрытия полезна в начале новой копии страницы и после нее, а не при копировании первой страницы.

Из моего исследования этого метода и нескольких других, нет способа, в первую очередь из-за стандартов конфиденциальности, обнаруживать обновление страницы во время разгрузки или раньше. только после загрузки новой страницы и позже.

У меня был похожий запрос на проблему, но в основном это был конец сеанса при выходе из страницы, и, просматривая это, обнаружил, что браузер рассматривает перезагрузку/обновление как две разные части:

  • закрыть текущее окно (срабатывает onbeforeunload и onunload js events).
  • запросите страницу так, как будто у вас ее никогда не было. Сеанс на сервере, конечно, не имеет проблемы, но ни одна строка не изменяет/добавляет значения на последний использованный URL-адрес страницы.

Это происходит именно в этом порядке. Только пользовательский или нестандартный браузер будет вести себя по-другому.