离开页面时执行功能

时间:2012-11-19 17:32:09

标签: jquery ajax

我正在尝试编写一个显示用户是否已登录的函数。当用户离开站点时,该函数应该在数据库中进行更改,这是我当前的代码:

$(window).bind('beforeunload', function(){
$.ajax({
        url: "change_to_logged_out.php",
        success: function(data){
            alert(data)
         }
      });
});

当用户重新加载页面时,代码不会执行,这是我想要的,但是当有人关闭选项卡或窗口时执行,也很好。但是,如果用户只是点击重定向到我网站上另一个页面的链接,则会执行代码。如果用户单击指向站点上其他位置的链接,该如何忽略该功能,但如果用户被重定向到其他站点则不会忽略该功能?也许有更好的方法来制作这样的功能?

提前致谢

1 个答案:

答案 0 :(得分:2)

外部选择器来自此处:http://james.padolsey.com/javascript/extending-jquerys-selector-capabilities/

$.expr[":"].external = function(el){
   if(!el.href) {return false;}
   return el.hostname && el.hostname !== window.location.hostname;
};
var clicked = 0;
$(window).bind('beforeunload', function(){
!clicked && $.ajax({
        url: "change_to_logged_out.php",
        success: function(data){
            alert(data)
         }
      });
});
$(document).on('click', 'a:external', function(){clicked = 1;});