2012-07-12 11 views

cevap

7

basit cevap hayır - tarayıcılar güvenlik modelleri açıkça bir kullanıcı sayfanızı (yenileme/dahili/kapama bağ/dış bağlantı) bırakmak seçmiştir ne şekilde tespit etmek için izin vermez.

detect refresh browser for unload/beforeunload when browser closed

mümkündür - bir çerez kullanarak - Bir kullanıcı aynı oturumda bu sitede daha önce olup olmadığını sayfanızı yüklediğinde kontrol etmek - örneğin onlar yenilenir ettiğini fark - ama yenilemez önce:

Detect Browser Refresh in Javascript

Check if page gets reloaded or refreshed in Javascript

kısmi ve kusurlu bir yaklaşım onlar bastırdı "F5" veya "Ctrl + R" veya algılamak için olurdu Sayfa yüklenmeden hemen önce "Cmd + R" (yenileme için klavye kısayolları). Bu, bazı yenilemeleri algılayacaktır, ancak kullanıcının yenileme düğmesini gerçekten tıkladığı yer değil.

(function($) { 
    var refreshKeyPressed = false; 
    var modifierPressed = false; 

    var f5key = 116; 
    var rkey = 82; 
    var modkey = [17, 224, 91, 93]; 

    // Check for refresh keys 
    $(document).bind(
     'keydown', 
     function(evt) { 
      // Check for refresh 
      if (evt.which == f5key || window.modifierPressed && evt.which == rkey) { 
       refreshKeyPressed = true; 
      } 

      // Check for modifier 
      if (modkey.indexOf(evt.which) >= 0) { 
       modifierPressed = true; 
      } 
     } 
    ); 

    // Check for refresh keys 
    $(document).bind(
     'keyup', 
     function(evt) { 
      // Check undo keys 
      if (evt.which == f5key || evt.which == rkey) { 
       refreshKeyPressed = false; 
      } 

      // Check for modifier 
      if (modkey.indexOf(evt.which) >= 0) { 
       modifierPressed = false; 
      } 
     } 
    ); 

    $(window).bind('beforeunload', function(event) { 
     var message = "not refreshed"; 

     if (refreshKeyPressed) { 
      message = "refreshed"; 
     } 

     event.returnValue = message; 
     return message; 
    }); 
}(jQuery)); 

bağlantısının hedef aynı sitede veya olmasın açık olup olmadığı bir bağlantı tıklandığında Ayrıca algılayabilir: How can I detect when the user is leaving my site, not just going to a different page?

İlgili konular