当前位置: 首页 > 面试题库 >

jQuery卸载事件仅适用于关闭窗口,不适用于链接导航

孙辰阳
2023-03-14
问题内容

关闭页面时,我使用此代码注销用户,但是单击其他链接(相同的网站)时,用户也会注销:

  $( window ).unload(function() {
    $.ajax({url:"?logout&leave=yes", async:false})
  });

有什么方法可以区分链接导航和实际页面关闭吗?

编辑:

我目前已实现此解决方案,但是它缺乏检测页面重新加载的能力

  $('a').click(function(){
      var url = $(this).attr("href");
      window.onbeforeunload = null;
      $(window).unbind('beforeunload');
      window.location = url;
  });

问题答案:

尝试以下解决方案,希望对您有所帮助

<script>
$(window).bind('click', function(event) {
    if(event.target.href) 
        $(window).unbind('beforeunload');
});
$(window).bind('beforeunload', function(event) {
    $.ajax({url:"?logout&leave=yes", async:false});
});
</script>

要么

var logOutFlag = true;
$('a').click(function(){
    logOutFlag = false;
});
$(window).bind('beforeunload', function(event) {
    if(logOutFlag){
         $.ajax({url:"?logout&leave=yes", async:false});   
    }
});


 类似资料:
  • 问题内容: 我正在将多页php + jquery网站转换为单页角度应用程序。但是我已经用jquery编写了很多代码,因此只打算将php换成与路由等有关的角度。 我遇到的一个我无法弄清楚的问题是,在转换停止工作之前,我一直用尽的jquery click事件。如果更改代码以使其通过ng- click触发,则它将起作用,即使我从控制台调用该函数也是如此。jQuery正常工作,我在提到的函数中放了一些jQ

  • 问题内容: 下面的代码有效。如果有更好的方法,请告诉我。如果我使用通过ajax加载test.html的主页中test.html中存在的脚本内容。该脚本不起作用。 Test.html: 我们必须根据需要通过ajax加载脚本以及动态加载的内容,但是我感到不利的是,每次我们发送ajax请求脚本时都会始终加载内容。但是我只找到了这种解决方案。如果有人知道更好的解决方案,请回复。 例如,如果以这种方式更改代

  • 问题内容: 我对Spring框架很陌生,遇到了以下问题。 我有一个接口,由class 和实现。 我将以下bean定义添加到 我想自动连接以下两个实现类。 上面的代码抛出错误为 无法自动写入字段:com.abc.ClassA1 com.abc.SomeClass.classA1; 嵌套的异常是org.springframework.beans.factory.NoSuchBeanDefinition

  • 例如,用谷歌搜索网站,登陆主页,然后进入跨域网站正确记录“有机”作为媒介 (已通过在GA中使用实时数据进行验证) 但是,通过谷歌搜索网站,登陆主页,然后进入跨域网站并完成一个事件,会错误地将“Direct”记录为该事件的媒介。 GTM设置已配置为: -5个域推送到“汇总”GA帐户 -autoLinker=true -Cookie-Domain=auto -auto-Link-domains=sit

  • 问题内容: 我试图在ReactJS组件中使用event.stopPropagation()来阻止单击事件冒泡并触发遗留代码中与JQuery关联的click事件,但是似乎React的stopPropagation()只能停止传播到事件也附加在React中,并且JQuery的stopPropagation()不会停止传播到随React附加的事件。 有什么方法可以使stopPropagation()在这

  • 文件关联是 Navicat 使用什么来打开 Navicat 的已保存文件。例如:.ndtfmysql 文件(MySQL 数据传输配置文件)会以数据传输窗口来打开,而 .nimpmysql 文件(MySQL 导入向导配置文件)会默认以导入向导来打开。