解决javascript:window.close()在chrome,Firefox下失效的问题

window.close(),一看就知道是用来关闭浏览器窗口的方法。W3CSchool对该方法的解释如下:方法 close() 将关闭有 window 指定的顶层浏览器窗口。某个窗口可以通过调用 self.close() 或只调用 close() 来关闭其自身。只有通过 JavaScript 代码打开的窗口才能够由 JavaScript 代码关闭。这阻止了恶意的脚本终止用户的浏览器。

在IE中,window.close()能生效,在生效的时候,会弹出提示框,询问你是否关闭该窗口,如图

点击“是”,可以直接关闭该窗口。是这段代码在chrome和Firefox下面不会生效。针对chrome浏览器,可以在编写如下代码,使之生效:


代码如下:

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

先通过window.open()在本窗口打开一个页面,然后再通过window.close()方法关闭。这应验了这句话:“只有通过 JavaScript 代码打开的窗口才能够由 JavaScript 代码关闭”。

这段代码对IE和chrome都是有效的,但是在firefox下面无效。需要对firefox进行如下操作:

1.在Firefox地址栏里输入 about:config

2.在配置列表中找到 dom.allow_scripts_to_close_windows
      3.点右键的选切换把上面的false修改为true即可。
    注:默认是false,是为了防止脚本乱关窗口

FireFox中做如此设置以后,直接使用“window.close()”即可对窗口关闭。

(0)

相关推荐

  • Jquery修改页面标题title其它JS失效的解决方法

    Jquery代码 复制代码 代码如下: $("title").html("hello"); 后来只好用下面这段js代码来实现 Js代码 复制代码 代码如下: document.title="hello";

  • js和jquery设置disabled属性为true使按钮失效

    设置disabled属性为true即为不可用状态. JS document.getElementByIdx("btn").disabled=true; jquery $("#btn").attr("disabled", true); html <input type="button" value="提交" id="btn">

  • 一个js导致的jquery失效问题的解决方法

    搞网站开发,最头疼的是js问题,倒不是php程序开发,前端的页面,js真是太让人折腾了,特别是js,你根本不知道哪里就会出问题,各种兼容也要兼顾,不像写程序,你只关心功能如何实现,逻辑怎么写.js文件一个出问题,就影响其他js的运行,今天就遇到一个很纠结的东西,一个js导致的莫名其妙的问题. 这个js是一个增强页面效果的功能,但是用了它,jquery在有的页面可以用,有的页面就失效了,用firefox的firebug调试,发现在有的页面会报错,获取分页的位置的地方会出错.后来发现确实只要没有分页

  • js和jquery使按钮失效为不可用状态的方法

    设置disabled属性为true即为不可用状态. JS: 复制代码 代码如下: document.getElementByIdx("btn").disabled=true; jquery 复制代码 代码如下: $("#btn").attr("disabled", true); html: 复制代码 代码如下: <input type="button" value="提交" id="btn&

  • jquery mobile页面跳转后样式丢失js失效的解决方法

    用ajax跳转的时候,从a.html跳转到b.html后,b.html的css以及js都失效了. 方法: 将当前页面b.html需要用到的css以及js放在<page>div内. 原理: 由于jqm的ajax跳转的时候,只会把b.html中<page>内的内容加载进dom,而<page>外的代码都不会加载,所以导致在<page>外的js和css都失效了.

  • JS出现失效的情况总结

    对于大前端来说,JS可谓是我们的神器,从页面的效果到数据的传递,再到后台的业务,无处不充斥着JS的身影,但是万能的JS也有贪玩的时候,某一时刻你就有可能发现你形影不离的JS突然间罢工了,这对我们前端来说绝对是头痛的事,作为前端君的我今天就和大家聊聊有哪些情况会导致JS突然性的罢工.  1.JS出现错误,比如函数没有闭合,JS的标签出现错误等等情况,都会使得JS不能执行,这时如果不能发现错误,就会陷入JS貌似挂掉了的情况,也给开发工作造成困扰.  2.还有一种情况就是你苦苦修改的页面发现并不是你运

  • $.getJSON在IE下失效的原因分析及解决方法

    复制代码 代码如下: $.ajaxSetup({ cache: false }); $.getJSON("/MyQueryUrl",function(data,item) { // do stuff with callback data $.ajaxSetup({ cache: true }); }); 原因:getJson在IE下IE下默认会使用浏览器缓存,所以导致数据不显示 解决:让其不要使用缓存 这里有更多的解决方法 http://stackoverflow.com/questi

  • Extjs grid panel自带滚动条失效的解决方法

    之前用EXTJS的gridPanel组件的时候,因为经常对gridPanel中的stroe数据进行过滤,所以有时候总是导致gridPanel自身所带的scrollbar失效. 取个实例,EXTJS gridPanel自带的滚动条,是有一个固定的列宽来放置这个scrollbar的,如上图所示.所以当这个scrollbar失效的时候,无论你怎么拖动这个滚动条,grid中的数据永远都不会随scrollbar的移动而展示相应区域的数据(换句话说就是你永远看到的数据都是截图中的这几条record). 至于

  • javascript的document.referrer浏览器支持、失效情况总结

    在流量统计服务中都有Traffic source这个功能.Traffic source是针对访次级别的概念,换句话说,当访次建立的时候,landing page的流量来源即是该访次的Traffic source.虽然Traffic source有很多种,不过不幸的是依据现在JS,获得Traffic source的途径只有两种--document.referrer.window.opener.更不幸的是,window.opener适用的场景不多,而document.referrer非常的弱,以至于

  • 解决火狐浏览器下JS setTimeout函数不兼容失效不执行的方法

    今天检查自己用JQuery+AJAX+PHP做的网站后台登录检测,发现登陆成功后执行页面跳转函数这段JavaScript(JS)代码特效在IE和谷歌浏览器Chrome下都可以很好地执行,兼容性还不错.结果到了火狐(FireFox)浏览器下setTimeout这个JS内置函数不执行了,无效了,也没报错!打开FireBUG指望它能检测出JS的错误,结果没用...Javascript(JS)脚本代码在各浏览器下的兼容是一个很头疼的问题,经过一番调试和搜索,终于解决了setTimeout这个JS代码在火

随机推荐