Как проверить страницу перезагрузка или обновление с помощью 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-адрес страницы.
Это происходит именно в этом порядке. Только пользовательский или нестандартный браузер будет вести себя по-другому.