浏览 3490 次
锁定老帖子 主题:JavaScript检测浏览器
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2007-01-20
刚好手头有一本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字符串的值,按照自己的需要来检测浏览器。 一下子打这么多字,手好痛啊。。 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2007-01-20
单纯的浏览器检测基本上没有意义,除非你要做用户群的统计。即使这样也建议结合对象检测。user-agent最大的问题是可以伪装的。
|
|
返回顶楼 | |