24

ユーザーがブラウザの戻るボタンをクリックしたことを検出することは可能ですか?

Ajax アプリケーションがあり、ユーザーが [戻る] ボタンをクリックしたことを検出できれば、適切なデータを表示できます

PHP、JavaScript を使用したソリューションが望ましいです。PHP/JavaScriptに翻訳できるものが必要なだけで、どの言語のソリューションでも問題ありません

編集:以下からカットアンドペースト:

うわー、すべての素晴らしい答え。Yahoo を使用したいのですが、既に Prototype ライブラリと Scriptaculous ライブラリを使用しており、これ以上 ajax ライブラリを追加したくありません。しかし、iFramesを使用しているため、独自のコードを作成するための適切な指針が得られます。

4

7 に答える 7

16

これを行うための私のお気に入りのフレームワークの 1 つは、Yahoo! の Browser History Managerです。イベントを登録し、ユーザーがその状態に戻ったときにコールバックします。それがどのように機能するかを知りたい場合は、Yahoo! の意思決定に関する楽しいブログ エントリをご覧ください。設計時に作成します。

于 2008-09-11T06:10:16.100 に答える
14

複数の方法がありますが、一部の方法は特定のブラウザーでのみ機能します。私が頭のてっぺんから知っていることの 1 つは、ほとんど目に見えない小さな iframe をページに埋め込むことです。ユーザーが戻るボタンを押すと、iframe がナビゲートされ、ページを検出して更新することができます。 ここに別の解決策があります。

また、gmail などでソースを表示して、その方法を確認することもできます。

ちなみに、ここにあなたが探している種類のライブラリがあります

于 2008-09-11T06:01:42.720 に答える
7

ユーザーが [戻る] ボタンをクリックしたり、バックスペース キーを押してブラウザーに戻ったりするタイミングを知る方法はありませんが、検出可能な特定の順序で発生する他のイベントがあります。このJavaScript の例には、バック コマンドを検出するためのかなり適切な方法があります。

ただし、従来の方法では、Cookie またはリファラー ページを使用してサイト内のユーザーの動きを追跡します。ユーザーがページ A に移動し、次にページ B に移動し、次にページ A に再び表示されると (特に B に A へのリンクがない場合)、ユーザーが戻ったことがわかります。

于 2008-09-11T06:04:34.070 に答える
3

更新が必要なページのキャッシュ バージョンに戻ったかどうかを確認する最も簡単な方法は、キャッシュされる非表示の入力要素を追加することです。デフォルト値がまだ残っているかどうかを確認できます。

body タグ内に次を配置するだけです。終了タグの直前に配置します。

<input type="hidden" id="needs-refresh" value="no">
<script>
    onload=function(){
        var e = document.getElementById("needs-refresh");
        if (e.value === "yes")
            location.reload();
        e.value = "yes";
    }
</script>
于 2015-10-30T15:28:46.817 に答える
3

私の個人的なお気に入りのクライアント側 JS ライブラリである Yahoo User Interface Library には、ユーザーが求めていることを正確に実行する優れたBrowser History Managerがあります。

于 2008-09-11T06:14:00.053 に答える
1

Dojo ツールキットには、JavaScript でこれを処理する機能があります。純粋なPHPでそれを処理する良い方法はないと思います。

彼らが持っているドキュメントページは次のとおりです

于 2008-09-15T20:16:33.443 に答える