window.close()失效问题

来源:互联网 发布:手机版组态软件 编辑:程序博客网 时间:2024/05/17 04:41

一般的窗口关闭的JS如下写法:

    window.close()


但是呢,chrome,firefox等中有时候会不起作用。

改为下面的写法:

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

   或者

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


如果是frame的时候如下写法:

   一般:window.top.close()

   改善:window.open("about:blank","_top").close()   或者 window.open("","_top").close()


其他比如window.parent.close()也是可以用类似的方法。


如果关闭按钮既可能是单独的画面,也可能是frame的一部分的时候,可以用下面的写法对应。

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

   }
}



下面是网上比较受欢迎的文章:

function logout(){
        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(); 
                 }
        }
}

FireFox需要设置:
在Firefox地址栏里输入 about:config
在配置列表中找到 dom.allow_scripts_to_close_windows
点右键的选切换把上面的false修改为true即可。
注:默认是false,是为了防止脚本乱关窗口



【6、弹出的窗口之定时关闭控制】 

  下面我们再对弹出的窗口进行一些控制,效果就更好了。如果我们再将一小段代码加入弹出的页面(注意是加入到page.html的HTML中,可不是主页面中,否则...),让它10秒后自动关闭是不是更酷了? 
  首先,将如下代码加入page.html文件的<head>区: 

<script language=javascript> 

function closeit() { 

setTimeout(self.close(),10000) //毫秒 



</script> 
 然后,再用<body onload=closeit()> 这一句话代替page.html中原有的<BODY>这一句就可以了。(这一句话千万不要忘记写啊!这一句的作用是调用关闭窗口的代码,10秒钟后就自行关闭该窗口。) 

0 0
原创粉丝点击