在firefox和Chrome下关闭浏览器窗口无效的解决方法

首先IE是可以通过window.close()来关闭浏览器窗口的,但是在firefox和Chrome下是无效的。

原因在于:

Firefox下默认设置是无法通过脚本来关闭浏览器窗口的,为的是防止恶意脚本注入,

所以调整的方式就是在url地址栏中输入about:config,

然后在配置列表中找到 dom.allow_scripts_to_close_windows
点右键的选切换把上面的false修改为true即可。 默认是false

chrome下的默认是不支持这种关闭方式的,但是也可以通过一些特殊的手段进行关闭:


代码如下:

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

创建窗口父元素无,同时将窗口指向自身,同时关闭自身,最后才可以关闭,其实有点类似与用脚本打开了当前页面,再用脚本关闭当前页面,而这种方式在W3C中是被认同的!

我们不可能要求客户去改变浏览器配置,99%的人都是用的默认配置,这个方法可以解决当前(2014-01-16)大部分浏览器无法关闭当前页面问题,10年后就不知道了(这是废话,hehe)。

时间: 2014-01-13

用DIV完美模拟createPopup 弹出窗口(脚本之家修正版),支持Firefox,ie,chrome

补增一个效果图! 模拟Popup body{ margin:0; padding:0; text-align:center; } #container{ margin:50px auto; padding:10px auto; } #popupcontent{ position:absolute; border:1px solid #000000; line-height:17px; background-color:#F7F7F4; visibility:hidden; cursor:defa

Chrome浏览器的alert弹窗禁止再次弹出后恢复的方法

Chrome浏览器的alert弹窗,选择了禁止再次弹出后,就不会再弹出了. 第一次弹出alert弹窗没有"禁止此页再显示对话框"选项,第二次和以后才有. 这个功能在开发测试中,或者程序出现bug时,页面不断弹出对话框时,很有作用,这时候只需要勾选不再弹出对话框,就不会再出现了. 但如果要让他再次弹出,怎么办呢? 试了刷新页面,不能让弹窗再次出现. 其实只要把页面关闭,或者浏览器关闭,然后再打开,就能恢复弹出了. 手机版的浏览器也可以这样处理. 也就是说重启一下浏览器,或者关闭重开页面就

JavaScript无提示关闭窗口(兼容IE/Firefox/Chrome)

在IE7/ Firefox 3.0/ Google Chrome通过测试 CloseDemo.htm 复制代码 代码如下: <script> var browserName=navigator.appName; if (browserName=="Netscape") { function closeme() { window.open('','_parent',''); window.close(); } } else { if (browserName=="M

Chrome下ifame父窗口调用子窗口的问题示例探讨

项目中遇到的一个浏览器不兼容问题: 在IE和Firefox下直接在ifame框架页的父窗口用子窗口的name调用子窗口的js函数都好使,在Chrome下不好使. 复制代码 代码如下: <frameset rows="108,*,30" border="0" frameSpacing="0" frameBorder="0"> <frame name="header" scrolling=&q

iframe 父窗口和子窗口相互的调用方法集锦

一.父窗口调用iframe子窗口方法 1.HTML语法:<iframe name="myFrame" src="child.html"></iframe> 2.父窗口调用子窗口:myFrame.window.functionName(); 3.子窗品调用父窗口:parent.functionName(); 简单地说,也就是在子窗口中调用的变量或函数前加个parent.就行 4.父窗口页面源码: 复制代码 代码如下: <html>

vue 父组件调用子组件方法及事件

情景: 父组件中引入上传附件的子组件:点击组件可以分别上传对应要求的图片,子组件内部循环可创建多个模块. 父组件传入数组子组件循环来创建不同的组件模块,所有事件都在子组件内部. 父组件页面的上方同时有一个上传图片按钮上传图片后会显示在第一个模块: 设想思路:点击父组件中的按钮触发子组件中上传方法: 子组件上定义ref="refName",父组件的方法中用this.$refs.refName.method去调用子组件方法 子组件中处理上传的方法: fileClick(index) { c

C#中父窗口和子窗口之间控件互操作实例

本文实例讲述了C#中父窗口和子窗口之间控件互操作的方法.分享给大家供大家参考.具体分析如下: 很多人都苦恼于如何在子窗体中操作主窗体上的控件,或者在主窗体中操作子窗体上的控件.相比较而言,后面稍微简单一些,只要在主窗体中创建子窗体的时候,保留所创建子窗体对象即可. 下面重点介绍前一种,目前常见的有两种方法,基本上大同小异: 第一种,在主窗体类中定义一个静态成员,来保存当前主窗体对象,例如: 复制代码 代码如下: public static yourMainWindow pCurrentWin =

在父页面调用子页面的JS方法

今天弄了一天了,终于在网上找到了解决办法 注意:问题是在父页面调用子页面的方法..... 父页面:parent.html 复制代码 代码如下: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.o

vue 使用ref 让父组件调用子组件的方法

父级组件上的三个按钮可以 调用子组件loading的三个方法,执行不同的操作 <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <script src="vue.js" charset="utf-8"></script> </head> <body> <div id="app&qu

Vue父组件调用子组件事件方法

Vue父组件向子组件传递事件/调用事件 不是传递数据(props)哦,适用于 Vue 2.0 方法一:子组件监听父组件发送的方法 方法二:父组件调用子组件方法 子组件: export default { mounted: function () { this.$nextTick(function () { this.$on('childMethod', function () { console.log('监听成功') }) }) }, methods { callMethod () { con

PyQt5实现从主窗口打开子窗口的方法

1.在Qt Designer中设计两个简单窗口 2.将.ui文件转换成.py文件 3.新建**.py文件 #-*- coding:utf-8 -*- from PyQt5.QtWidgets import QMainWindow, QApplication from window import Ui_MainWindow from child import Ui_Child import sys class Main(QMainWindow,Ui_MainWindow): def __init_

Angular父组件调用子组件的方法

理解组件 组件是一种特殊的指令,使用更简单的配置项来构建基于组件的应用程序架构 这样他能简单地写app,通过类似的web Component 或者angular2的样式. web Component 是一个规范.马上就要成为标准. 应用组件的优点: 比普通指令配置还简单 提供更好的默认设置和最好的实践 对基于组建的应用架构更优化. 对angular2的升级更平滑. 不用组建的情况: 对那些在 compile或者pre-link阶段要执行操作的指令,组件不能用,因为无法到达那个阶段. 如果你想定义

vue.js中父组件调用子组件的内部方法示例

前言 今天同事问了一个问题,他在用iview开发时,需要用到iview一个组件的内部方法,而这个内部方法并没有暴露出来,这种情况下如何调用组件内部方法呢,其实很简单,举个栗子