我正在尝试编写一个显示用户是否已登录的函数。当用户离开站点时,该函数应该在数据库中进行更改,这是我当前的代码:
$(window).bind('beforeunload', function(){
$.ajax({
url: "change_to_logged_out.php",
success: function(data){
alert(data)
}
});
});
当用户重新加载页面时,代码不会执行,这是我想要的,但是当有人关闭选项卡或窗口时执行,也很好。但是,如果用户只是点击重定向到我网站上另一个页面的链接,则会执行代码。如果用户单击指向站点上其他位置的链接,该如何忽略该功能,但如果用户被重定向到其他站点则不会忽略该功能?也许有更好的方法来制作这样的功能?
提前致谢
答案 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;});