`

第8章:检测浏览器和操作系统

阅读更多
navigator对象
8.2浏览器的检测方式

1.对象/特征检测法

  eg.if(document.getElementById){
   //some code
}else{
  //some code
}
如果document.getElementById不被支持,则返回undefined,转成boolean,则就是false,所以可以用些方法来检测.

2.user-agent字符串检测法.

userAgent属性.
var sUserAgent=navigator.userAgent;
返回一些基本的字符串.不同浏览器,不同的.

下面为一些基本的..仅供参考


IE 5.5:
appName:Microsoft Internet Explorer
userAgent:Mozilla/4.0 (compatible; MSIE 5.5; Windows NT 5.1; .NET CLR 2.0.50727; InfoPath.1; .NET CLR 1.1.4322)

IE 6:
appName:Microsoft Internet Explorer
userAgent:Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; .NET CLR 2.0.50727; InfoPath.1; .NET CLR 1.1.4322)

IE 7:
appName:Microsoft Internet Explorer
userAgent:Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 2.0.50727; InfoPath.1; .NET CLR 1.1.4322)

IE 8:
appName:Microsoft Internet Explorer
userAgent:Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; .NET CLR 2.0.50727; InfoPath.1; .NET CLR 1.1.4322)

Firefox:
appName:Netscape
userAgent:Mozilla/5.0 (Windows; U; Windows NT 5.1; zh-CN; rv:1.9.0.5) Gecko/2008120122 Firefox/3.0.5  (Amon注:Windows)
Mozilla/5.0 (X11; U; Linux i686; zh-CN; rv:1.9.0.4) Gecko/2008111318 Ubuntu/8.10 (intrepid) Firefox/3.0.4  (Amon注:Ubuntu Linux)

SeaMonkey:
appName:Netscape
userAgent:Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.19) Gecko/20081204 SeaMonkey/1.1.14  (Amon注:Windows)
Mozilla/5.0 (X11; U; Linux i686; zh-CN; rv:1.8.1.17) Gecko/20080829 SeaMonkey/1.1.12 (Ubuntu-1.1.12+nobinonly-0ubuntu1)  (Amon注:Ubuntu Linux)

Safari:
appName:Netscape
userAgent:Mozilla/5.0 (Windows; U; Windows NT 5.1; zh-CN) AppleWebKit/525.19 (KHTML, like Gecko) Version/3.1.2 Safari/525.21

Chrome:
appName:Netscape
userAgent:Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US) AppleWebKit/525.19 (KHTML, like Gecko) Chrome/1.0.154.36 Safari/525.19

Opera:
appName:Opera
userAgent:Opera/9.63 (Windows NT 5.1; U; Edition IBIS; zh-cn) Presto/2.1.1  (Amon注:Windows)
Opera/9.63 (X11; Linux i686; U; zh-cn) Presto/2.1.1  (Amon注:Ubuntu Linux)

Konqueror:
appName:Netscape
userAgent:Mozilla/5.0 (compatible; Konqueror/4.1; Linux) KHTML/4.1.2 (like Gecko)








8.3 user-agent发展简史

第一代:
Netscape Navigator 与 IE3.0
<script type="text/javascript">
	//找到最早期的检测方法,找到IE
	if(navigator.userAgent.indexOf('MSIE')>-1){
		if(navigator.userAgent.indexOf('MSIE 3.')){
			//for IE3.0
			//for some code;
		}
	}else if(parseFloat(navigator.appVersion)>=3){
		//3.0版本以上
		//for 其它浏览器版本3.0以上;
		
	}
</script>




第二代:

Netscape Communicator 4.0 与ie4.0
netsacpe跟原来的一样
ie4.0将Mozilla改成4.0

ie4.5 Mozilla为4.0 但是MSIE为4.5,此浏览器在MacOs系统上发布

IE5.0 及更高版本.
Mozilla为4.0 5.0版为MSIE5.0
IE6.0浏览器为Mszilla为4.0,MSIE为6.0

8.3.4
Mozilla
8.3.5
Opera:可以将其伪装成另一种浏览器的能力;
8.3.6
Safari基于一个叫KHTML的项目.

浏览器检测版本
最好的方法是检测它的最小版本开始.
用到的函数有以下.

比较函数,检测一种浏览器最低版本的基础函数,后面大量用到此函数:
 //比较函数
            var sUserAgent = navigator.userAgent;
            var fAppVersion = parseFloat(navigator.appVersion);
            function comparenVersions(sVersion1, sVersion2){
                var aVersion1 = sVersion1.split(".");
                var aVersion2 = sVersion2.split(".");
                if (aVersion1.length > aVersion2.length) {
                    //补0;版本号长度比较短的..则补0,等长度一样,才能进行版本比较;
                    for (i = 0; i < aVersion1.length - aVersion2.length; i++) {
                        aVersion2.push("0");
                    }
                }
                else 
                    if (aVersion1.length < aVersion2.length) {
                        for (i = 0; i < aVersion2.length - aVersion1.length; i++) {
                            aVersion1.push("0");
                        }
                    }
                for (var i = 0; i < aVersion1.length; i++) {
                    //转为10进制然后进行比较;
                    iVar1 = parseInt(aVersion1[i], 10);
                    iVar2 = parseInt(aVersion2[i], 10);
                    if (iVar1 > iVar2) {
                        return 1;
                        //如果aVersion1的数字大于aVersion2数字,则返回1;
                    }
                    else 
                        if (iVar1 < iVar2) {
                            return -1;
                        }
                    
                }
                //如果测试了所有的数字,没有返回值,那么函数返回一个0;表示两个版本相等;
                return 0;
            }



分享到:
评论

相关推荐

    Java Script高级程序设计

    第8章 检测浏览器和操作系统 第9章 事件 第10章 高级DOM技术 第11章 表单和数据完整性 第12章 表格排序 第13章 拖放 第14章 错误处理 第15章 JavaScript中的XML 第16章 客户端与服务器端的通讯 第17章 Web服务 第18...

    修改系统默认浏览器

    在计算机操作系统中,系统默认浏览器是指用户在打开链接或者点击某些需要通过网络浏览内容时,系统自动调用的浏览器程序。通常,操作系统会在首次安装浏览器或者其他应用时询问用户选择哪个浏览器作为默认。然而,...

    C#源码自动检测手机浏览器

    5. **多平台兼容性**:在检测手机浏览器时,需要考虑不同操作系统(如iOS、Android、Windows Phone)以及多种浏览器(如Chrome、Firefox、Safari、Edge等)的User-Agent格式差异。 6. **异常处理**:由于User-Agent...

    IE8浏览器XP版本

    Internet Explorer 8是IE浏览器系列的第八个主要版本,发布于2009年,它在当时引入了一些重要的功能更新和技术改进。 在描述中提到的“IE8 XP升级完整版,亲测可用”,意味着这个压缩包包含的是针对Windows XP系统...

    超好用的浏览器下载工具,内有很多浏览器

    6. **跨平台支持**:大多数主流浏览器都支持Windows、MacOS、Linux等操作系统,部分还覆盖移动设备,如Android和iOS。 7. **用户界面**:浏览器的界面设计和可用性也影响着用户的使用体验,包括地址栏、书签管理、...

    IE8系统浏览器

    IE8,全称Internet Explorer 8,是由微软公司开发的一款Web浏览器,它是Internet Explorer系列中的第八个主要版本。这个版本在2009年3月19日正式发布,针对Windows XP、Vista以及Windows 7等操作系统提供服务。IE8在...

    windows使用详解

    Windows 使用详解涵盖了...总的来说,Windows 使用详解是一个全面介绍操作系统核心功能和使用的指南,涵盖了从系统安装、驱动管理、网络配置到用户账户安全的各个方面,对于Windows 8用户来说是一份宝贵的参考资料。

    Javascript教程

    8. **第八章:jQuery库** - jQuery简介与引入 - jQuery选择器与遍历 - jQuery的DOM操作与事件处理 9. **第九章:面向对象编程** - 构造函数与new关键字 - 原型链与继承 - 闭包在面向对象中的应用 10. **第十...

    android图片浏览器(源码)

    8. **文件系统访问**:图片浏览器需要访问设备上的图片文件,这涉及到Android的文件系统操作,如`Environment.getExternalStorageDirectory()`用于获取外部存储路径。 9. **图片选择器**:可能包含一个图片选择器...

    android 图片浏览器 代码

    9. **兼容性**:考虑到Android设备的多样性,图片浏览器应确保在不同版本的Android系统和各种屏幕尺寸上都能正常工作。 10. **测试**:最后,进行全面的测试以确保所有功能的稳定性和可靠性,包括单元测试、集成...

    ios-浏览器分页选项功能Web.zip

    10. **安全与防护**:iOS系统和浏览器内置的安全机制会检测并阻止恶意网站,保护用户的数据安全。 以上知识点是基于“ios-浏览器分页选项功能Web.zip”文件可能涉及的内容,具体实现细节可能包括编程语言(如Swift...

    Chrome浏览器最新版本

    7. 跨平台支持:Chrome支持Windows、Mac、Linux、Android和iOS等多个操作系统,最新版本会确保在各个平台上的体验一致性。 8. 网络标准支持:Chrome浏览器始终紧跟Web技术的发展,对HTML5、CSS3、JavaScript ES6等...

    win8系统怎么安装猎豹浏览器.docx

    在Windows 8系统中安装猎豹浏览器的步骤相对简单,主要涉及到软件的兼容性设置,因为某些应用程序可能在新操作系统中遇到不兼容的问题。以下是详细的操作指南: 1. **下载猎豹浏览器安装程序**: 首先,你需要访问...

    chrome浏览器

    7. **跨平台支持**:Chrome支持Windows、Mac OS X、Linux和Android等多种操作系统。 8. **书签同步**:通过Google账户,用户可以在不同设备间同步浏览历史、书签、密码等个人信息。 9. **翻译功能**:内置Google...

    JavaScript精彩网页特效实例精粹

    第八章至第十五章:进阶特效与实践 这部分内容可能包括更多的网页交互、动画效果、拖放功能、表单验证以及页面元素的动态布局等,帮助开发者提升网页的复杂性和专业性。 第十六章:JavaScript连接数据库实例 这一章...

    windows操作系统电脑基础知识it计算机专业资料PPT课件.pptx

    Windows操作系统是全球最广泛使用的个人计算机操作系统之一,它以其易用性和丰富的应用程序生态而闻名。本课件旨在介绍Windows操作系统的基础概念、主要功能以及日常使用技巧,帮助初学者和专业人士更好地理解和应用...

    Matlab实用教程

    1. **安装与启动**:介绍如何在不同操作系统上安装Matlab,以及启动和退出Matlab工作环境。 2. **工作界面**:详解Matlab的工作窗口,包括命令窗口、当前目录浏览器、命令历史、工作空间和帮助浏览器等。 3. **基本...

    Beginning.Silverlight.5.in.C#

    - **第8章:导航框架**:讨论Silverlight中的导航机制及其应用场景。 - **第9章:Silverlight中的隔离存储**:探讨如何在Silverlight应用中安全地存储数据。 - **第10章:系统集成与设备支持**:介绍如何将...

    Silverlight初学者的入门课程

    #### 第八章:“Hello World” Silverlight应用程序 - **创建过程**:介绍如何使用Visual Studio创建一个基本的“Hello World”应用程序。 - **步骤**: 1. 创建新的Silverlight项目。 2. 在XAML中定义简单的用户...

Global site tag (gtag.js) - Google Analytics