浏览器信息(Navigator)

window.navigator

代表正在使用的浏览器的对象。

◆  window.navigator.appCodeName

返回浏览器的代码名。"Mozilla" 本来是 Netscape Navigator 的开发代码(语源是怪兽哥斯拉),考虑到为 Mozilla 制作的网页的兼容性,Internet Explorer 的返回值也是 "Mozilla"。

◆  window.navigator.appName

返回代表浏览器名的字符串。

浏览器
IE Microsoft Internet Explorer
Chrome Netscape
◆  window.navigator.appVersion

返回代表浏览器版本号的字符串。Internet Explorer 为“<对应的Mozilla版本> (compatibpe; MSIE <IE的版本>; <操作系统名称>)”的形式。

浏览器
IE5.5(Win) 4.0 (compatible; MSIE 5.01; Windows 98)
IE7.0(Win) 4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 1.1.4322; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729; InfoPath.3)
Chrome16.0(Win) 5.0 (Windows NT 5.1) AppleWebKit/535.7 (KHTML, like Gecko) Chrome/16.0.912.75 Safari/535.7
◆  window.navigator.appMinorVersion

返回浏览器的次版本号。该属性是一个只读的字符串。仅IE有效。

浏览器
IE7.0(Win) 0
◆  window.navigator.userAgent

userAgent 返回代表浏览器名和版本号的字符串。

浏览器
IE7.0(Win) Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 1.1.4322; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729; InfoPath.3)
Chrome16.0(Win) Mozilla/5.0 (Windows NT 5.1) AppleWebKit/535.7 (KHTML, like Gecko) Chrome/16.0.912.75 Safari/535.7
◆  window.navigator.platform

返回浏览器平台的字符串("Win32", "Win16", "WinCE", "Mac68k", "MacPPC", "HP-UX", "SunOS" 等)。

◆  window.navigator.cpuClass

返回CPU的信息("x86", "68K", "Alpha", "PPC" 等)。仅IE有效。

◆  window.navigator.browserLanguage
◆  window.navigator.systemLanguage
◆  window.navigator.userLanguage

language、browserLanguage 返回浏览器的语言种类,systemLanguage 返回系统的语言种类,userLanguage 返回用户环境的语言种类。仅IE有效。

■ 浏览器状态

◆  window.navigator.cookieEnabled

返回 cookie 是否可用的真伪值。

◆  window.navigator.onLine

返回是否能连上网络的真伪值。

◆  window.navigator.javaEnabled()

返回 Java 是否可用的真伪值。

■ 其他

◆  window.navigator.userProfile

保存着用户信息的对象。拥有 addReadRequest() doReadRequest() getAttribute() clearRequest() 等方法。

◆  window.navigator.taintEnabled()

是否可以加密数据的真伪值。仅IE有效。

IE还真是让设计师恨的牙痒痒的东西,且现在已经有IE6IE7IE8IE9IE10这个五种不同版本的浏览器,且都有一点小差异。但是没办法,为了让网页在每个浏览器中显示都一样还必须迁就它。

不过现在我基本上都不太愿意对低版本的IE去做兼容了。比如IE6、IE7这些直接忽略!IE8的话还凑合一下。好在IE9和IE10对网络标准支持都比较了,等IE9版本以上的浏览器普及以后就好很好了。

但是不做兼容归不做兼容,还是要简单的处理一下的。幸运的是 jQuery 提供了 browser 标记来让我们能判断现在的访客是用什么浏览器及版本:

 

我用了一点简单的范例来显示目前浏览器的 userAgent 及 jQuery.browser.version,接着在 IE 6~8 中测试,但其中显示的结果还真是让错愕咧!

通过 jQuery.browser.version 判断为IE6

通过 jQuery.browser.version 判断为IE7

通过 jQuery.browser.version 判断为IE8

从结果看来, IE 7 的判断是错误的,在仔细看它的 userAgent 时会发现,里面除了 msie 7.0 之外,还包含了 msie 6.0,因此导致 jQuery.browser.version 的比对就有问题了。既然已经知道问题,那我们就能针对问题来解决。

第一种方式是比较直接的方式,先判断 userAgent 中如果有出现较高版本的话,那就是依该版本为主:

当要使用时,就能用 $.browser.msie6~10 来做判断处理了。另一种就是直接修正 jQuery.browser.version 的比对方式:

 

经过这样的修正之后,当我们再使用 jQuery.browser.version 来判断时就能正确的显示 IE 的版号了。两种方式都有其方便性,就看各位要选择那一种来使用啰!

你可能感兴趣的:(navigator)