开发者社区> 问答> 正文

Chrome无法调用window.close方法?报错

Chrome无法调用window.close方法,会报错,提示信息为: Scripts may close only the windows that were opened by it.

在网上搜了各种解决方案,下面的几种都无法解决:

//	window.opener=null;
//	window.open('','_self');
//	window.close();
//	open(location, '_self').close();
//	open(' ', '_self').close();

//	window.location.
//	window.close();
	
//	window.opener = window;
//    var win = window.open(" ","_self");
//    win.close();

 

展开
收起
爱吃鱼的程序员 2020-06-05 14:05:16 1349 0
1 条回答
写回答
取消 提交回答
  • https://developer.aliyun.com/profile/5yerqm5bn5yqg?spm=a2c6h.12873639.0.0.6eae304abcjaIB
                        <p>................</p>
                    
    
                        <p>建议下次可以先去MDN搜索下API的使用方法: https://developer.mozilla.org/zh-CN/docs/Web/API/Window/close</p> 
    

    文章里说,close只能关闭用在JS脚本里用open方法打开的窗口。因此下面的代码有效。

    var win = window.open("https://www.oschina.net");
    win.close();

    或者说在窗口A执行代码

    window.open("http://example.com")

    然后在新创建的example.com窗口执行下面的代码也可以关闭。

    window.close()

     

                            用 a 标签打开的窗口不属于脚本代码打开,所以不能用 window.close() 关闭。
    

    不清楚你是怎么调用API的,不过这样是可以成功关闭窗口的:https://gitee.com/reter/window-close/blob/master/index.html。

    测试的时候不要用浏览器直接打开 html 页面,要使用http服务器。

                            我这个页面是通过a标签向后端发送请求打开的页面,试了各种方式都无法关闭,就是中间通过过渡方式open一个新的页面然后立即close仍然不行,close方法还是会报错,谷歌浏览器这个就是通不过.
                        
    
                        <p>用 a 标签打开的窗口不属于脚本代码打开,所以不能用 window.close() 关闭。 不清楚你是怎么调用API的,不过这样是可以成功关闭窗口的:https://gitee.com/reter/window-close/blob/master/index.html。 测试的时候不要用浏览器直接打开 html 页面,要使用http服务器。</p>
                    
    
                            感谢解答,最终也没有办法解决这个问题,正如你上面所说的用 a 标签打开的窗口不属于脚本代码打开,所以不能用 window.close() 关闭。所以将关闭这个功能取消了.
    
    2020-06-05 14:05:28
    赞同 展开评论 打赏
问答分类:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载