0

これは、ページを離れるユーザーをキャプチャする方法です。

window.onbeforeunload = function (evt) {
    var message = "Are you sure you want to leave?";
    if (typeof evt == 'undefined') {
        evt = window.event;
    }
    if (evt) {
        evt.returnValue = message;
    }
    return message;
}

</script>

今私が欲しいのは、「このページを離れる」をクリックしてユーザーをキャプチャし、データベースに何かを挿入することです.これはどのように可能ですか?

4

1 に答える 1

1

ダイアログを表示しない場合は、ユーザーが去ることを(試みる)ことができます。(ダイアログを表示する場合、多くのオプションはありません。)

でサーバーに同期要求を行う必要がありますonebeforeunload

onbeforeunload = function() {
    var data = 'id=123';
    var xhr = new XMLHttpRequest;
    xhr.open('POST', '/imleavingthepage', false);
    xhr.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
    xhr.setRequestHeader("Content-length", data.length);
    xhr.send(data);
}

しかし、これは必ずしも信頼できるものではないことを知っておいてください。onbeforeunloadは標準ではなく、ブラウザがリクエストを送信することさえできない場合があります。

ただし、これを Chrome で行ったことがありますが、通常は成功します。

于 2013-11-09T06:25:46.857 に答える