首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > JavaScript >

javascript判断浏览器的有关问题

2012-04-08 
javascript判断浏览器的问题昨天写了段javascript判断浏览器的脚本,在自己机器上ie6,7,8,360浏览器,火狐,

javascript判断浏览器的问题
昨天写了段javascript判断浏览器的脚本,在自己机器上ie6,7,8,360浏览器,火狐,谷歌,遨游,腾讯TT,safari,opera,搜狗告诉浏览器都通过了,但是给别人测试的时候说没通过,请大家帮我测试分析下,另外,请教怎么用js判断世界之窗浏览器,其agent信息和IE完全一模一样,不知道怎么判断

HTML code
<!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.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8" /><title>无标题文档</title><script type="text/javascript"> function getbrowser(){    if(navigator.userAgent.indexOf("Firefox")>0)    {     alert("你用的是火狐浏览器");    }    else    {        if(navigator.userAgent.indexOf("Maxthon")>0||navigator.appName != "Microsoft Internet Explorer")        {                        if(navigator.userAgent.indexOf("Chrome")>0)            {             alert("你用的是谷歌浏览器");            }            else            {                if(navigator.userAgent.indexOf("Safari")>0)                {                 alert("你用的是Safari");                }                else                {                    if(navigator.userAgent.indexOf("Opera")>=0)                    {                     alert("你用的浏览器是Opera");                    }                    else                    {                    alert("你用的是遨游浏览器");                    }                }            }                    }        else        {             if(navigator.appName == "Microsoft Internet Explorer")                {                    if(navigator.appVersion.match(/6./i)=='6.')                    {                    alert("你的IE浏览器版本太老了,换个新的吧");                   }                  else                {                    if(navigator.appVersion.match(/7./i)=='7.')                    {                        if(navigator.userAgent.indexOf("360SE")>0){                         alert("你用的是360浏览器");                        }                        else                        {                            if(navigator.userAgent.indexOf("TencentTraveler")>0)                            {                             alert("你用的是TT");                            }                            else                            {                                if(navigator.userAgent.indexOf("SE")>0){                                 alert("你用的是搜狗浏览器");                                }                                else                                {                                alert("你用的是IE7");                                }                            }                        }                    }                    else                    {                        alert("你的IE既不是6,也不是7,那应该是8了,或者是过时了10年的5.5");                    }                }            }          }    }if(navigator.userAgent.indexOf("TheWorld")>0){     alert("世界之窗浏览器");}}</script> </head><body onload="getbrowser()"></body></html>


[解决办法]
JScript code
function detectBrower()   ...{        var sUserAgent = navigator.userAgent;        var isOpera = sUserAgent.indexOf("Opera") > -1;       if(isOpera) return "Opera";       var isKHTML = sUserAgent.indexOf("KHTML") > -1 || sUserAgent.indexOf("Konqueror") > -1 || sUserAgent.indexOf("AppleWebKit") > -1;       var isSafari = sUserAgent.indexOf("AppleWebKit") > -1 && isKHTML;       var isKonq = sUserAgent.indexOf("Konqueror") > -1 && isKHTML;       if(isSafari) return "Safari";       if(isKonq) return "Konqueror";       var isIE = sUserAgent.indexOf("compatible") > -1 && sUserAgent.indexOf("MSIE") > -1 && !isOpera;       if(isIE) return "IE";       var isMoz = sUserAgent.indexOf("Gecko") > -1 && !isKHTML;       if(isMoz) return "Mozilla";       return "None";   }   本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/lieri111/archive/2010/03/16/5386384.aspx 


[解决办法]
其实我觉得你每判断一次都要执行一遍这个函数,而浏览器类型那个不是变量,而是常量
var isIE = /msie/i.test(navigator.userAgent) && !window.opera;
以后就直接
if (isIE)
这样不是更加快???
非要写一个方法然后每次执行判断?????

热点排行