淘先锋技术网

首页 1 2 3 4 5 6 7

在Web开发中,我们经常会遇到需要在网页中添加关闭按钮的场景,但是有时使用jQuery的window.close()方法关闭页面时,却发现无法关闭当前页面。这是为什么呢?


$(document).ready(function(){
      $(".close-btn").click(function(){
           window.close();
      });
});

jquery无法关闭当前页面

以上是一个简单的jQuery代码,当点击class为close-btn的元素时,执行window.close()方法,即关闭当前页面。但是,当我们在浏览器中测试时,却发现无论如何都无法关闭当前页面。

这是因为,window.close()方法只能关闭由JavaScript创建的窗口。在浏览器中打开的页面,无论是由HTML还是由JavaScript打开的,都不属于由JavaScript创建的窗口,所以无法直接关闭。

那么,如何解决这个问题呢?我们可以先判断当前窗口是否是由JavaScript打开的,如果是,就关闭当前窗口,如果不是,则提示用户手动关闭窗口。


$(document).ready(function(){
      $(".close-btn").click(function(){
          if (window.opener == null) {
              window.open('', '_self', '');
              window.close();
          } else {
              alert("请手动关闭当前窗口");
          }
      });
});

以上是修改后的代码,先判断当前窗口是否是由JavaScript打开的,如果是,就用window.open()方法打开一个新窗口,然后再关闭当前窗口。如果不是,则弹出提示框,让用户手动关闭窗口。

通过以上方法,我们就可以解决jQuery无法关闭当前页面的问题了。