论坛首页 Web前端技术论坛

JavaScript检测浏览器

浏览 3490 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2007-01-20  
发现自己做的一个网页的显示效果在IE中蛮好的,在FireFox中却惨不忍睹。

刚好手头有一本JavaScript的书,就总结了一下。

在客户端浏览器检测中最重要的对象是navigator对象。(尽管微软反对使用术语navigator,因为这指代了Netscape的浏览器,但 navigator对象还是成为提供Web浏览器信息事实上的标准。除了navigator对象外,微软还有一个叫做clientInformation 的对象,不过其实它们提供的信息是类似的。)

JavaScript检测浏览器的方式目前一般使用以下两种方式:对象/特征检测和use-agent字符串 检测。每种方式都有其优缺点,一定要合理的使用。

一、对象/特征检测法

该方法是一种判断浏览器能力(而非浏览器的确切型号)的通用方法。大部分JS专家认为这个方法最合适,因为他们认为按照该方法所编写的脚本是经得起未来考验的。

该方法认为,在使用一个给定的对象之前要先检查它的存在。例如,要使用方法document.getElementById(),但是不确定浏览器是否支持它。可以使用下面这段代码:

    if(document.getElementById) {
       //该方法存在,使用它
    } else {
       //该方法不存在,其他操作
    }

如果更关注浏览器的能力而不在乎它实际的身份,就可以使用这种方法。

二、user-agent字符串检测法

user-agent字符串检测法是最古老的检测方式。每个访问网站的程序都要提供一个user-agent字符串来向服务器确定它的身份。以前只能在服 务器上通过CGI变量HTTP_USER_AGENT来访问。不过,JS在navigator对象中引入了userAgent属性来提供客户端对user -agent字符串的访问。

    var sUserAgent = navigator.userAgent;

user-agent字符串提供了关于Web浏览器的大量信息,包括浏览器的名称和版本。

限于篇幅,我不能将详细的检测代码写到这里,也没有这个必要。大家可以找到对应于每种不同浏览器的user-agent字符串的值,按照自己的需要来检测浏览器。

一下子打这么多字,手好痛啊。。
   发表时间:2007-01-20  
单纯的浏览器检测基本上没有意义,除非你要做用户群的统计。即使这样也建议结合对象检测。user-agent最大的问题是可以伪装的。
0 请登录后投票
论坛首页 Web前端技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics