web-dev-qa-db-ja.com

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です。他に見つける方法はありますか?

47
Coding

リフレッシュイベントに使用

window.onbeforeunload = function(e) {
  return 'Dialog text here.';
};

https://developer.mozilla.org/en-US/docs/Web/API/window.onbeforeunload?redirectlocale=en-US&redirectslug=DOM%2Fwindow.onbeforeunload

そして

$(window).unload(function() {
      alert('Handler for .unload() called.');
});
53
Er.KT

「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");
        }           
    }
}
11
Vipin Malik

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

5
developerCK