问题:我最近看一个视频做一个很简单的贪吃蛇小游戏,我增加一些用户体验辅助功能,但是我发现我使用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. YOLOv4实用训练实践
  2. CIIS 2020专题论坛丨突破自然语言理解,找到人工智能出口
  3. Linux内核启动速度优化,嵌入式Linux启动时间优化的秘密之五-Bootloader
  4. Spring 梳理 - ContentNegotiatingViewResolver
  5. html怎么添加5px高的线,CSS 0.5px 细线边框的原理和实现方式
  6. Memcached和Redis
  7. 视觉中国网站恢复试运营 此前曾两次遭整改
  8. asp.net web开发框架_Python之Web开发框架学习 发送电子邮件
  9. python合并excel工作簿_使用Python将多个excel的多个sheet页合并到一个excel
  10. 相当郁闷的问题,TabHost选项卡标签图标始终不出现?
  11. 最土团购程序一些常见的数据库操作
  12. 0606关于mysql优化原理
  13. 苹果计算机音频无法使用,苹果电脑没声音了怎么回事
  14. Keras:ModelCheckpoint和model.fit的verbose有什么差异?
  15. 超强实用 中国各地特产风味大搜捕
  16. 跨模态行人重识别:Deep Learning for Person Re-identification:A Survey and Outlook(行人重识别综述)
  17. 移动端GPGPU 架构
  18. 不是学计算机的人工作后才开始学编程晚吗?能找到好工作吗?
  19. 银河麒麟踩坑笔记——sh文件设置开机自启
  20. 数据分析记录(六)--多元线性回归在SPSS中的实现(步骤及指标含义)

热门文章

  1. vlc-android对于通过Live555接收到音视频数据包后的处理分析
  2. STEAM教育市场现状及未来发展趋势
  3. 更换YOLOv5激活函数
  4. 角蜂鸟上手之路(一)——初玩FaceNet
  5. Metapsloit后渗透Windows攻击(亲测metepreter使用教程)
  6. [Arduino] 基于Xbee Pro和网络技术的智能公交系统设计
  7. 用safari免费看playboy杂志
  8. motoxt 1085 android8,MOTO X XT1085 5.1.1 ROM刷机包
  9. Java实现DM5加密
  10. java程序设计雷电游戏设计步骤_基于Java的飞机雷电射击游戏的设计任务书