Chrome下无法用window.close()关闭非脚本打开的页面

今天脚本了里写了一句话:

window.close()

但是浏览器却报了警告提示:Scripts may close only the windows that were opened by it,而且也没有能够关闭我想关闭的页面,怎么办呢?找万能的度娘,搜到的解决方案有:
(1)

window.open('','_self','');
window.close();

(2)

open(location, '_self').close();

这两种我都试过了,还是一样有警告信息,并且无法关闭窗口。
最后一种方案是:

  window.location.href="about:blank";
  window.close();

终于成功关闭窗口啦!

参考:
window.close and self.close do not close the window in Chrome

chrome JS关闭当前页无效问题

————–update on 29 Jan 2018———————
看评论,好多人说还是无法关闭,我已经不记得自己当时的实际应用场景是什么了,我今天自己重新模拟试了一下,具体代码如下:
主页面test.html,两个按钮aaa和 bbb,aaa在自身Tab打开test1.html页面;bbb在新Tab打开test2.html页面

<!DOCTYPE html>  
<html>  
    <head>  
        <meta charset="UTF-8">  
        <title>HHH</title>  
        <script src="https://apps.bdimg.com/libs/jquery/2.1.4/jquery.min.js"></script>
    </head>  
    <body>  
        <input type="button" id="btn1" value="aaa"/>
        <input type="button" id="btn2" value="bbb"/>
    </body>  
    <script>
        $("#btn1").on("click",function(){
            window.open("test1.html","_self");
        });
        $("#btn2").on("click",function(){
            window.open("test2.html","_blank");
        });
    </script>
</html>

test1.html页面的代码如下:

<!DOCTYPE html>  
<html>  
    <head>  
        <meta charset="UTF-8">  
        <title>HHH</title>  
        <script src="https://apps.bdimg.com/libs/jquery/2.1.4/jquery.min.js"></script>
    </head>  
    <body>  
        <h1>test1</h1>
        <input type="button" id="closeBtn" value="close" />
    </body>  
    <script>
        $("#closeBtn").on("click",function(){
           window.location.href="about:blank";
           window.close();
        });
    </script>
</html> 

test2.html页面的代码如下:

<!DOCTYPE html>  
<html>  
    <head>  
        <meta charset="UTF-8">  
        <title>HHH</title>  
        <script src="https://apps.bdimg.com/libs/jquery/2.1.4/jquery.min.js"></script>
    </head>  
    <body>  
            <h1>test2</h1>
            <input type="button" id="closeBtn" value="close" />
        </body>  
        <script>
            $("#closeBtn").on("click",function(){
                window.close();
            });
        </script>
</html> 

测试结果是,test2.html页面可以直接用window.close();就关闭掉;而test1.html页面需要用

 window.location.href="about:blank";
 window.close();

才能关闭(这个关闭其实是以打开一个新的空白页为代价的)。
用其他方式关闭时都无法关闭,且会提示如下警告信息:

 Scripts may close only the windows that were opened by it.

环境:Chrome,版本 64.0.3282.119(正式版本) (32 位)

    原文作者:心彻
    原文地址: https://www.jianshu.com/p/9dc2752194b8
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞