使用JavaScript检测浏览器的相关特性.docVIP

  1. 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
使用JavaScript检测浏览器的相关特性

使用JavaScript检测浏览器的相关特性一、检测浏览器的名称 问题: ??? 不同的浏览器对javascript的标准支持也有不同,有时希望脚本能够在不同的浏览器上都能运行良好,这时需要对浏览器进行检测,确定其名称,以针对不同的浏览器编写相应的脚本。 解决方案: ??? 使用navigator对象的appName属性。 ??? 比如,要检测浏览器是否为IE,可以这么做: ??? var isIE = (navigator.appName == Microsoft Internet Explorer); ??? document.write(is IE? + isIE); ??? 对于FireFox,navigator对象的appName属性值为Netscape;Opera9.02的appName属性值为Opera(其更早版本可能不同); 二、检测浏览器的版本号: 问题: ??? 随着浏览器的版本的更迭,浏览器所支持的脚本特性也在变化,有时候就需要针对不同的版本编写相应的脚本,那么如何获得浏览器的版本号? 解决方案: ??? 通过解析navigator对象的userAgent属性来获得浏览器的完整版本号。 ??? IE将自己标识为MSIE,后面带一个空格,版本号以及分号。所以我们只要取空格和分号之间的部分即可。如Windows XP SP2所带的IE的userAgent属性值为Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322; .NET CLR 2.0.50727),可以看到其版本为6.0。可以用如下的函数来获取IE浏览器的版本号: ??? function getIEVersonNumber() ??? { ??????? var ua = navigator.userAgent; ??????? var msieOffset = ua.indexOf(MSIE ); ??????? if(msieOffset 0) ??????? { ??????????? return 0; ??????? } ??????? return parseFloat(ua.substring(msieOffset + 5, ua.indexOf(;, msieOffset))); ??? } 假设我们要为IE5及以上版本编写脚本,可以这么写: ??? var isIE5Min = (getIEVersonNumber() = 5); ??? if(isIE5Min) ??? { ??????? // perform statements for IE 5 or later ??? } ??? 对于FireFox和Opera等浏览器,也可以用navigator.userAgent属性来获取其版本号,只不过其形式与IE有所不同,如FireFox: ??? Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.0.7) GeckoFirefox/1.5.0.7 ??? Opera:Opera/9.02 (Windows NT 5.1; U; en)根据这些形式,我们不难获得其版本号。但这些浏览器的其它版本没有测试过,其具体值不明确,如果要使用这种方法检测,请自行验证。 ??? 下面讨论下,上面的那段为IE5及以上版本浏览器编写的脚本,使用这种写法要注意:要用=而不是==,一般情况下,我们可以假定浏览器是向后兼容的,所以使用==显然不能适应新版本;另一方面,我们上面的假定也仅仅是假定,不能确保是这样,如果浏览器的某些对象或属性不能向后兼容,我们的代码也会产生问题,所以建议,少用浏览器版本的比较,更多情况下,应检测是要用的对象或属性是否得到支持。 三、检测客户端的操作系统类型 根据上面的讨论可以看到,navigator.userAgent属性通常含有操作系统的基本信息,但很不幸,没有统一的规则去根据userAgent获取准确的操作系统信息,因为这些值与浏览器的种类、浏览器的版本甚至浏览器的OEM版本都有关系。 通常我们能做的是,检测一些更为通用的信息,比如操作系统是Windows还是Mac,而不是去看是Windows 98还是Windows XP。其规则是所有的Windows版本都会含有Win,所有的Macintosh版本都含有Mac,所有的Unix则含有X11,而在Linux下则同时包含X11和Linux。如: ??? var isWin = (navigator.userAgent.indexOf(Win) != -1); ??? var isMac = (navigat

文档评论(0)

htfyzc + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档