سلام
مناسبترین راه فهمیدن اینکه کاربر از سایت اومده بیرون چیه؟
میخوام به هر صورتی که کاربر از سایت خارج شد (چه خاموش کردن سیستم/بستن بروزر/بستن تب بروزرو...) لاگوت رو ثبت کنم.
سلام خدمت شما
میتونین از رویداد های ununload و onbeforeunload استفاده کنین
البته توجه داشته باشین این رویدادها زمانی که با کلیک کردن روی یک لینک ، وارد صفحه ی دیگری میشین هم فراخوانی میشن
ینی کاربر اگه به هر صورتی از سایت خارج بشه ، این رویداد فراخوانی میشه
داخل این رویداد هم میتونین کاربر رو logout کنین
$(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 باعث ثبت خروج میشه
باز تست کن اگه دیدی جایی کلیلک میکنی یا روی تگی کلیک میکنی خروج میندازه اون تگ رو هم اضافه کن من خودم اینکارو کردم گل و بلبل شده فقط بندازش تو فایل js که سرعتت کند نشه
هیچ کاربری تا کنون از این پست تشکر نکرده است
با ما تماس بگیرید تا در این مسیر همراهتان باشیم :)