0

Eric から、ユーザーがブラウザーの [戻る] ボタンをクリックしたときに確認を表示する方法について、非常に役立つ回答を受け取りました。これにより、ユーザーは戻るかどうかを選択できます。

以下は彼の答えでした:

beforeunloadイベントを使用してこれを実現できます。

$(window).bind("beforeunload", function() {
    return "HI"; // Return whatever message you want
});​

フィドル

(フィドルを使用するには、ページをリロードするか、別の場所に移動するなどしてください。)

また、誰かが目的の方法 (キャンセル ボタン?) でページを離れたときにこれをバインド解除することをお勧めします。そうしないと、望ましくない動作が発生する可能性があります。

例えば:

$("a").click(function() {
    $(window).unbind("beforeunload");
});

質問

以下は私たちが議論したことであり、これを行うためのクリーンな方法があるかどうかはわかりませんが、私が試して達成したいことは、ユーザーがページを離れたいことを確認した場合、ナビゲートしたいということですユーザーを別のスクリプト (Text4.php) に変更し、このスクリプトではセッションを破棄してユーザーをログアウトするだけです。しかし、まず第一にこれが可能かどうか、そして第二に、この質問に答えるためにあなたのアイデアは何ですか?

4

5 に答える 5

1

それは不可能です。ユーザーがアクセスするページでユーザーになりすますことはできません。私に代わってブラウザを制御しようとしないでください。私がアクセスしたときにブラウザでページが表示され、正常に動作することを確認してください。

于 2012-11-07T13:12:53.040 に答える
0

ログアウトスクリプトを非同期で呼び出してから、ユーザーに目的のページを表示することを検討してください。

マークアップ

<a href="path/to/logout" id="yourlogoutlink">Logout</a>

JS

$("#yourlogoutlink").click(function(e) {

    e.preventDefault();

            if(!confirm("Leave the page?"))
                return;

    $.post( $(this).attr('href'), function(data){

        $(window).unbind("beforeunload");
        window.location.href = '/some/url';

    } );

});
于 2012-11-07T13:16:09.813 に答える
0

HistoryAPIを使用してみることができます...

これらのクロスブラウザAPIを試すことができます。

https://github.com/browserstate/History.js/

https://github.com/devote/HTML5-History-API

于 2012-11-07T13:16:42.593 に答える
0

いいえ、ユーザーがタブ、ウィンドウを閉じるか、戻ることを決定したときに、URL を変更することはできません。これには正当な理由があります。ページを離れることにした後、誰かにアフィリエイト/スパム/その他のサイトに誘導されたくありません:D

于 2012-11-07T13:14:26.807 に答える
-1

これを行うのに JavaScript は必要ありません。最初のページで次のことを行います。

session_start();
if(isset($_session['token']){
 //do log out stuff
} else {
 $_session['token'] = //generate random var here
}

ページが読み込まれると、変数が設定されているかどうかが確認され、設定されている場合はログアウトされ、設定されていない場合は作成されます。

于 2012-11-07T13:17:31.050 に答える