0

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

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

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

提前致谢

4

1 回答 1

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;});
于 2012-11-19T17:38:16.387 回答