مرجع تخصصی برنامه نویسان

انجمن تخصصی برنامه نویسان فارسی زبان

کاربر سایت

source

عضویت از 1395/11/13

بهترین راه ثبت Logout

  • جمعه 12 مهر 1398
  • 08:48
تشکر میکنم

سلام

مناسبترین راه فهمیدن اینکه کاربر از سایت اومده بیرون چیه؟

میخوام به هر صورتی که کاربر از سایت خارج شد (چه خاموش کردن سیستم/بستن بروزر/بستن تب بروزرو...) لاگوت رو ثبت کنم.

پاسخ های این پرسش

تعداد پاسخ ها : 3 پاسخ
کاربر سایت

محمد اردوخانی

عضویت از 1396/05/17

  • شنبه 13 مهر 1398
  • 08:54

سلام خدمت شما

میتونین از رویداد های ununload و onbeforeunload استفاده کنین

البته توجه داشته باشین این رویدادها زمانی که با کلیک کردن روی یک لینک ، وارد صفحه ی دیگری میشین هم فراخوانی میشن

ینی کاربر اگه به هر صورتی از سایت خارج بشه ، این رویداد فراخوانی میشه

داخل این رویداد هم میتونین کاربر رو logout کنین

کاربر سایت

mohammadd

عضویت از 1395/12/08

  • سه شنبه 16 مهر 1398
  • 14:52



$(document).ready(function () {
    $('a').click(function () {
        window.onbeforeunload = null;
    });
    $('input').click(function () {
        window.onbeforeunload = null;
    });
    $('i').click(function () {
        window.onbeforeunload = null;
    });
    $('select').click(function () {
        window.onbeforeunload = null;
    });

    $('li').click(function () {
        window.onbeforeunload = null;
    });
    $('ul').click(function () {
        window.onbeforeunload = null;
    });
    $('div').click(function () {
        window.onbeforeunload = null;
    });
    $('header').click(function () {
        window.onbeforeunload = null;
    });
    $('h2').click(function () {
        window.onbeforeunload = null;
    });
    $('h1').click(function () {
        window.onbeforeunload = null;
    });
    $('span').click(function () {
        window.onbeforeunload = null;
    });
    $('p').click(function () {
        window.onbeforeunload = null;
    });
    $('img').click(function () {
        window.onbeforeunload = null;
    });
    $('table').click(function () {
        window.onbeforeunload = null;
    });
    $('th').click(function () {
        window.onbeforeunload = null;
    });
    $('tr').click(function () {
        window.onbeforeunload = null;
    });
    $('td').click(function () {
        window.onbeforeunload = null;
    });
    $('figure').click(function () {
        window.onbeforeunload = null;
    });
    $('article').click(function () {
        window.onbeforeunload = null;
    });



    $(document).on("submit", "form", function () {
        window.onbeforeunload = null;
    });

    // Attach the event click for all inputs in the page
    $(document).bind("click", "input[type=submit]", function () {
        window.onbeforeunload = null;
    });

    $(document).bind("click", "button[type=submit]", function () {
        window.onbeforeunload = null;
    });


    $(document).keydown(function (e) {
        document.onkeydown = fkey;
        document.onkeypress = fkey
        document.onkeyup = fkey;

        var wasPressed = false;
        function fkey(e) {
            e = e || window.event;
            if (wasPressed) return;

            if ((e.keyCode == 116 && e.ctrlKey) || (e.keyCode == 116)) { //ctrl + F5
                window.onbeforeunload = null;
                wasPressed = true;
            }
        }
    });

   

    window.onbeforeunload = function (evt) {
        alert();
            $.ajax({
                url: "آدرس تابع logout",
                contentType: "application/json; charset=utf-8",
                type: "POST",
                success: function (data) {
                },
                error: function (x, y, z) {
                }
            });
    }
});

با اجرای این کد حتی اگه روی لینکی هم کلیک کنه خروج رو براش ثبت نمیکنه و فقط بستن مرورگر و Tab باعث ثبت خروج میشه

کاربر سایت

mohammadd

عضویت از 1395/12/08

  • سه شنبه 16 مهر 1398
  • 14:53

باز تست کن اگه دیدی جایی کلیلک میکنی یا روی تگی کلیک میکنی خروج میندازه اون تگ رو هم اضافه کن من خودم اینکارو کردم گل و بلبل شده فقط بندازش تو فایل js که سرعتت کند نشه

کاربرانی که از این پست تشکر کرده اند

هیچ کاربری تا کنون از این پست تشکر نکرده است

اگر نیاز به یک مشاور در زمینه طراحی سایت ، برنامه نویسی و بازاریابی الکترونیکی دارید

با ما تماس بگیرید تا در این مسیر همراهتان باشیم :)