Подтвердить что ты не робот

Как узнать, нажата ли кнопка обновления или кнопка возврата браузера в Firefox

Как узнать в 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. Есть ли другой способ найти его?

4b9b3361

Ответ 2

Используйте "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");
        }           
    }
}

Ответ 3

Для кнопки "Назад" в 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

Ответ 4

var keyCode = evt.keyCode;
if (keyCode==8)
alert('you pressed backspace');

if(keyCode==116)
alert('you pressed f5 to reload page')