问题:我最近看一个视频做一个很简单的贪吃蛇小游戏,我增加一些用户体验辅助功能,但是我发现我使用window,close()时,不起作用,并且查看控制台时发现有“Scripts may close only the windows that were opened by it.”警告,明白window,close()在老的ie浏览器起作用,在谷歌和搜狐浏览器都不起作用,很多人都避免使用它。于是我找了很多解决方法,最后每一种方法效果不一样,先总结如下:

解决方法一:针对chrome浏览器,可以在编写如下代码,使之生效:(借鉴其他大佬的,我没用谷歌浏览器试,感觉可以,用2345浏览器试了这个代码,老是报错,然后不起作用)。

window.open("about:blank","_self").close()

或者

window.open("","_self").close()

解决方法二:针对firefox:(借鉴其他大佬的,没用这个浏览器试过,也没试,不知道能不能行)

firefox配置:地址栏输入about:config,修改属性“dom.allow_scripts_to_close_windows”为true;

解决方法三:使用以下代码函数退出(这段代码我最初试的时候,发现不行,原因:我由另外一个网页点击按钮链接到这个界面的,这个时候,这代代码好像无法启到退出的作用。当我单独运行那个退出网页,然后点击“退出”按钮时,可以实现退出作用,该代码还有个优势就是有提示,对用户体验好 )。

function Close(){if(confirm("确定要退出吗?")){var browsername=navigator.appName;if (browsername=="Netscape"){window.open('', '_self', '');window.close();}if (browsername=="Microsoft Internet Explorer") { window.parent.opener = "whocares"; window.parent.close(); }}
}

解决方案四:以下代码也可以实现,但是缺点和上面代码一样,经过网页挑战还是不起作用,无法理解请自己试一下。

function Close() {try {window.opener = window;var w = window.open("","_self");w.close();//frame的时候top.close();} catch (e) {}
}

解决方法五:借鉴大佬的代码...以下代码可以解决上面2种方法的缺点,不过我试的时候,发现退出的界面是空白页,并不是真正的关闭。目前对于我那个项目,这个方法稍微好一点。

function Close(){if (navigator.userAgent.indexOf("Firefox") != -1 || navigator.userAgent.indexOf("Chrome") !=-1) {window.location.href="about:blank";window.close();} else {window.opener = null;window.open("", "_self");window.close();}
}

注意:以上方法我测试时,没用很多浏览器测试过,所以不能确保一定有用。emmm以后还是尽量避免这种现象出现,其实还有一种解决思路,就是设置一个函数,将关闭按钮跳转到该网站主页中,嘿嘿,不写了,不过我觉得可行。

关于window.close()不能关闭的问题解决相关推荐

  1. Extjs之window异步拦截关闭事件beforeClose的实现

    /** * Created by jwj on 2015/4/13. * 增强Ext.panel.Panel(window,panel,form等界面组件)的beforeClose事件,以实现异步拦截 ...

  2. Activity has leaked window that was originally added 问题解决

    在做练习的时候,切换屏幕竖恒状态时,会出现Activity has leaked window that was originally added 错误.网上查询得知原因是因为alertDilaog没 ...

  3. JS-打开新窗口(window.open)/关闭窗口(window.close)

    打开新窗口(window.open) open() 方法可以查找一个已经存在或者新建的浏览器窗口. 语法: window.open([URL], [窗口名称], [参数字符串]) 参考说明: URL: ...

  4. Microsoft Office Word遇到问题需要关闭的问题解决

    案例1: 方法:可能是模板出了问题,可以先试试: 关闭所有打开的文档,将以下地址粘贴到IE地址栏然后回车打开目录 %appdata%\microsoft\templates 然后删除里面Normal. ...

  5. window.close取消关闭提示.

    window.onload = null; window.open('','_parent',''); window.close(); 如果要关闭的页是window.open的话,红色部分不要就可以了 ...

  6. 关于谷歌/狐火等浏览器使用window.close()无法关闭网页问题

    使用jq关闭网页时,谷歌/火狐不允许直接关闭,所以不能直接使用window.close(): 对关闭方法进行改造 var userAgent = navigator.userAgent;if (use ...

  7. HBase: HMaster服务自动停止,且关闭集群时HRegionserver无法关闭的问题解决

    先说废话,这是半个多月之前遇到的问题了,趁历史记录还找得到赶快记一下 背景:三台阿里云Ubuntu服务器,Hadoop(2.6.5)完全分布式搭建,Zookeeper(3.4.10),HBase(1. ...

  8. 记录可控硅控制电路不能完全关闭的问题解决

    原始电路是并联的电容是10nF.39欧姆.现象是灯不能够完全关闭. 现在改为1nF.30欧姆,问题完全解决. 1nF的耐压电容是1000V,封装为1206 功率因数(Power Factor)的大小与 ...

  9. ubuntu linux qq自动退出关闭的问题解决方法

    每次开机启动电脑,Ubuntu  10 linux qq 老是自动退出,QQ登陆了还没几分钟呢,刚想聊几句天的,悄无声息的QQ自动关闭了. 只要修改一下qq配置文件(/usr/bin/qq)就可以了. ...

最新文章

  1. MySQL的主从服务器配置
  2. python学习(一)-----数据结构和算法----序列和字典的基本用法
  3. 虚拟多Mac地址工具Multimac
  4. python官方网站地址-index
  5. Python 面向对象1-面向对象介绍
  6. 【原型设计】第二节:Axure RP9制作自己的元件库的操作教程
  7. HDU2476:String painter(区间dp)
  8. python3安装cx oracle,[求助]python3安装cx_Oracle 报错
  9. 快速编写json数据
  10. Jupyter Notebooks的安装和使用介绍
  11. Javascript 跨域
  12. Windows 2003 + ISA 2006+单网卡×××配置(3)
  13. 小草客户端android2.2.4 g,小草客户端android2.2.5-小草app安卓版客户端android2.2.5预约 v2.2.5-优盘手机站...
  14. 微信支付相关(付款码支付,Native支付)
  15. 龙芯3a5000下编译postgresql 14.3
  16. Miracle密码算法开源库(二)源码分析 :mralloc.c、mrarth0.c
  17. 谷粒商城-基础篇-环境搭建(P1-P44)
  18. 如何按照DocNum+LineNum+流水号生成批次号
  19. 游戏中子弹的回收重用
  20. 【转】加快网站访问速度——Yslow极限优化

热门文章

  1. 《高效15法则》读书笔记
  2. 发那科Fanuc数控系统数据采集方案
  3. 什么是“老三论”、“新三论”
  4. matlab建模三要素,MATLAB建模与求解详解.ppt
  5. ES文件浏览器 v4.2.6.2 解锁免广告VIP高级版
  6. 第三期:有关大数据相关问答汇总,持续更新中~
  7. matlab图片序列生成视频(亲测可用)
  8. 推举一个在线matlab(octave)
  9. 省国税局关于营改增相关问题的解答(二)
  10. 解决 QQ可以登录 但浏览器却不能上网 的问题【360安全卫士】