web-dev-qa-db-ja.com

外部プラグインを使用せずにjavascript / jqueryでブラウザの戻るボタンを検出する

外部プラグインを使用せずに、Java-script/jqueryでブラウザの戻るボタンを検出したい。

以下のブラウザをサポートします

IE8、IE9、FireFox、Chrome

私は非常に多くのリンクをグーグルで検索し、コードプロジェクトからのコードの一部の下を見つけました

<body onbeforeunload=”HandleBackFunctionality()”>

function HandleBackFunctionality()
{
    if(window.event)
   {
        if(window.event.clientX < 40 && window.event.clientY < 0)
        {
            alert("Browser back button is clicked...");
        }
        else
        {
            alert("Browser refresh button is clicked...");
        }
    }
    else
    {
        if(event.currentTarget.performance.navigation.type == 1)
        {
             alert("Browser refresh button is clicked...");
        }
        if(event.currentTarget.performance.navigation.type == 2)
        {
             alert("Browser back button is clicked...");
        }
    }
}

上記のコードは正常に機能していますIEブラウザ。つまり、IEブラウザですが、chrome /でwindow.event.clientXとclientYの値を取得できます。 Firefoxが機能していません。

ブラウザの戻るボタンがクリックされたら、ページを更新する必要があります。

すべてのブラウザ(IE、Firefox、Chrome)でブラウザの戻るボタンのクリックイベントを検出するにはどうすればよいですか?

どんな助けでもいただければ幸いです。

5
SivaRajini

これはWebページにドロップするだけで、ユーザーがクリックして戻ると関数が呼び出されます。この呼び出しのデフォルト関数は、javascriptアラート「戻るボタンがクリックされました」です。

この機能を置き換えるには、OnBack関数をオーバーライドする必要があります。これは、以下のコードを使用して実行できます。

<script type="text/javascript">
bajb_backdetect.OnBack = function()
{
   alert('You clicked it!');
}
</script>

これにより、「戻るボタンがクリックされました」アラートが「クリックしました!」アラートに置き換えられます。
次のブラウザをサポートIE8、IE9、FireFox、Chrome
ブラウザの戻るボタンの検出
またはjqueryを使用する
ブラウザを取り戻す
標準のjavascriptを使用
Javascriptで戻るボタンをマスターする

4
Hamix

IE 8および9もサポートしているため、これを解決するのに役立つ単一のメソッドはありません。html5の履歴APIを使用できますが、IE8および9はサポートされていません。上記のコメントで言及されている謎のように、chrome、firefoxなどにはwindow.onPopStateを使用でき、IE)には、別のjsファイルを作成し、条件ステートメントを使用して、ユーザーがIE。

例えば:

<!--[if lte IE 9]>
    <script src="youIESpecificfile.js"></script>
<![endif]-->

HTML5 History APIの詳細については、こちらをご覧ください: onPopState by mozilla

お役に立てれば!

1
Vivin Bangera