您的位置:首页 > Web前端 > JavaScript

网页关闭(解决window.close在火狐下不兼容问题) 区分浏览器类别

2014-01-16 14:00 691 查看
熟悉前端的都知道,火狐默认状态非window.open的页面window.close是无效的

网上有很多人说,在火狐的地址栏输入:about:config然后找到dom.allow_scripts_to_close_windows;把false改为true

看着这些人的说法,不得不说我蛋疼了

我做的是网站,我怎么去改用户的浏览器设置,我不是搞病毒的啊

难道我在网站发布一个公告“如需用火狐访问本网站,请修改浏览器器设置……”

那恐怕我会死得很快

关闭是不可能的,那就搞点折中方案。。跳转到about:blank嘛

 

[javascript] view
plaincopy

<script type="text/javascript">  

    function CloseWebPage() {  

        if (navigator.userAgent.indexOf("MSIE") > 0) {  

            if (navigator.userAgent.indexOf("MSIE 6.0") > 0) {  

                window.opener = null; window.close();  

            }  

            else {  

                window.open('', '_top'); window.top.close();  

            }  

        }  

        else if (navigator.userAgent.indexOf("Firefox") > 0) {  

            window.location.href = 'about:blank ';  

            //window.history.go(-2);  

        }  

        else {  

            window.opener = null;   

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

            window.close();  

        }  

    }  

</script>  

 

附送点其他有用的JS

浏览器类型判断

 

[javascript] view
plaincopy

<script language="JavaScript">    

    <!--    

function getOs()    

{    

    var OsObject = "";    

   if(navigator.userAgent.indexOf("MSIE")>0) {    

        return "MSIE";    

   }    

   if(isFirefox=navigator.userAgent.indexOf("Firefox")>0){    

        return "Firefox";    

   }    

   if(isSafari=navigator.userAgent.indexOf("Safari")>0) {    

        return "Safari";    

   }     

   if(isCamino=navigator.userAgent.indexOf("Camino")>0){    

        return "Camino";    

   }    

   if(isMozilla=navigator.userAgent.indexOf("Gecko/")>0){    

        return "Gecko";    

   }    

      

}    

 alert("您的浏览器类型为:"+getOs());    

    -->    

</script>   

 

火狐浏览器支持window.event

[javascript] view
plaincopy

<script type="text/javascript">  

    if(isFirefox=navigator.userAgent.indexOf("Firefox")>0)   

    {          

        var _E = function(){  

            var c=_E.caller;   

            while(c.caller)c=c.caller;   

            return c.arguments[0]  

        };          

        __defineGetter__("event", _E);   

    }  

</script>  
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息