2013-04-01 4 views
1

Я хочу предупредить окно, когда браузер закрыт или вкладка браузера закрыта. У меня был какой-то код, но в этом 1 дополнительном сообщении идет. Я хочу знать, откуда он находится в поле предупреждения. если какой-либо другой код у вас есть, тогда пришлите мне или скажите мне, что мне делать. На самом деле я хочу избежать второго входа пользователя (для этого я создаю 1 идентификатор сеанса и сохраняю в БД после этого каждый раз, когда пользователь вводит его в идентификатор сеанса проверки в DB или нет, если пользователь может войти в систему, когда пользовательский идентификатор сеанса пользователя также удален, но браузер или вкладка закрыты, тогда идентификатор сеанса не удаляется. Для этого я хочу определить, что после этого я хочу отправить элемент управления ajax контроллер), поэтому я хочу знать, откуда приходит еще одно сообщение. пожалуйста решить мою проблему ..Как обнаружить браузер/вкладку закрыто

<script type="text/javascript" > 
var validNavigation = false; 

function wireUpEvents() { 

    var dont_confirm_leave = 0; //set dont_confirm_leave to 1 when you want the user to be able to leave withou confirmation 
    var leave_message = 'You sure you want to leave?' 
    function goodbye(e) { 
    if (!validNavigation) { 
     if (dont_confirm_leave!==1) { 
     if(!e) e = window.event; 
     //e.cancelBubble is supported by IE - this will kill the bubbling process. 
     e.cancelBubble = true; 
     e.returnValue = leave_message; 
     //e.stopPropagation works in Firefox. 
     if (e.stopPropagation) { 
      e.stopPropagation(); 
      e.preventDefault(); 
     } 
     //return works for Chrome and Safari 
     return leave_message; 
     } 
    } 
    } 
    window.onbeforeunload=goodbye; 

    // Attach the event keypress to exclude the F5 refresh 
    $('document').bind('keypress', function(e) { 
    if (e.keyCode == 116){ 
     validNavigation = true; 
    } 
    }); 

    // Attach the event click for all links in the page 
    $("a").bind("click", function() { 

    validNavigation = true; 
    }); 

    // Attach the event submit for all forms in the page 
    $("form").bind("submit", function() { 
    validNavigation = true; 
    }); 

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

} 

// Wire up the events as soon as the DOM tree is ready 
$(document).ready(function() { 
    wireUpEvents(); 
}); 
</script> 
+0

посмотреть [ссылка] (http://eureka.ykyuen.info/2011/02/22/jquery-javascript-capture-the-browser-or-tab- closed-event /) – 2013-04-01 07:33:26

+0

Я думаю, вы можете использовать событие onunload. –

+0

Если я использую onload-событие, то каждый раз, когда он выдает окно предупреждения – Anurag

ответ

0

Вы не можете ограничить пользователя с помощью яваскрипта кода, что, если пользователь отключил JavaScript в настройках браузера.

я думаю, вы должны справиться с этим с помощью PHP и базы данных (MySQL)

В регистр пользователь/Войти вставить новую запись в login_session таблицы в базе данных с датой и временем, перед проверкой входа, если запись существует или нет, и если существует, сколько времени прошло в его последнем логине, , если последний вход - более 5 монет или любое другое время, которое, по вашему мнению, подходит вам, обновите запись и создайте новые сеансы.

проверить это похоже пост здесь PHP /SESSION: Login one per user?

Смежные вопросы