2016-06-20 4 views
0

Мне нужно открыть вкладку браузера и очистить сеанс, используя вызов AJAX.Обнаружение вкладки браузера закрытие события Очистить сеанс php

window.onbeforeunload обнаруживает только при перезагрузке страницы.

+0

Думаю, вам нужно выполнить вызов AJAX при выгрузке. Но сервер должен ответить, прежде чем окно будет закрыто. – Atticweb

+0

** onbeforunload ** не является подходящим событием для вашей цели, потому что он выполняется каждый раз, когда вы покидаете свою страницу. , пожалуйста, следуйте https://eureka.ykyuen.info/2011/02/22/jquery-javascript-capture-the-browser-or-tab-closed-event/, чтобы получить свою цель. –

ответ

0

Вы пробовали этот код?

window.onbeforeunload = function (event) { 
    var message = 'Important: Please click on \'Save\' button to leave this page.'; 
    if (typeof event == 'undefined') { 
     event = window.event; 
    } 
    if (event) { 
     event.returnValue = message; 
    } 
    return message; 
}; 

$(function() { 
    $("a").not('#lnkLogOut').click(function() { 
     window.onbeforeunload = null; 
    }); 
    $(".btn").click(function() { 
     window.onbeforeunload = null; 
}); 
}) 

; Вторая функция необязательна, чтобы избежать запроса при нажатии на элементы #lnkLogOut и .btn.

Еще одна вещь. Пользовательская подсказка не работает в Firefox (даже в последней версии). Для получения дополнительной информации об этом, пожалуйста, перейдите к этой теме.

+0

Это работает при перезагрузке страницы не при закрытии вкладки браузера. – Vijayakumar

+0

Я предлагаю вам создать сеанс на основе активности, если сеанс не выполняется какой-либо операции в течение определенного времени, а затем просто очистите сеанс, его лучший и рекомендуемый подход. –