Ответ 1
Использовать для события обновления
window.onbeforeunload = function(e) {
return 'Dialog text here.';
};
и
$(window).unload(function() {
alert('Handler for .unload() called.');
});
Как узнать в Firefox, нажата ли кнопка обновления или нажата кнопка возврата в браузере... для обоих событий onbeforeunload()
является обратным вызовом. Для IE я работаю так:
function CallbackFunction(event) {
if (window.event) {
if (window.event.clientX < 40 && window.event.clientY < 0) {
alert("back button is clicked");
}else{
alert("refresh button is clicked");
}
}else{
// want some condition here so that I can differentiate between
// whether refresh button is clicked or back button is clicked.
}
}
<body onbeforeunload="CallbackFunction();">
Но в Firefox event.clientX и event.clientY всегда равны 0. Есть ли другой способ найти его?
Использовать для события обновления
window.onbeforeunload = function(e) {
return 'Dialog text here.';
};
и
$(window).unload(function() {
alert('Handler for .unload() called.');
});
Используйте "event.currentTarget.performance.navigation.type", чтобы определить тип навигации. Это работает в IE, FF и Chrome.
function CallbackFunction(event) {
if(window.event) {
if (window.event.clientX < 40 && window.event.clientY < 0) {
alert("back button is clicked");
}else{
alert("refresh button is clicked");
}
}else{
if (event.currentTarget.performance.navigation.type == 2) {
alert("back button is clicked");
}
if (event.currentTarget.performance.navigation.type == 1) {
alert("refresh button is clicked");
}
}
}
Для кнопки "Назад" в jquery // http://code.jquery.com/jquery-latest.js
jQuery(window).bind("unload", function() { //
а в html5 - событие Событие называется "popstate"
window.onpopstate = function(event) {
alert("location: " + document.location + ", state: " + JSON.stringify(event.state));
};
и для обновления, пожалуйста, проверьте Проверьте, перезагружается ли страница или обновляется ли она в Javascript
В Mozilla Client-x и client-y находятся внутри области документа https://developer.mozilla.org/en-US/docs/Web/API/event.clientX
var keyCode = evt.keyCode;
if (keyCode==8)
alert('you pressed backspace');
if(keyCode==116)
alert('you pressed f5 to reload page')