`
suoyihen
  • 浏览: 1358932 次
文章分类
社区版块
存档分类
最新评论

JavaScript FAQ(二十二)——客户端信息

 
阅读更多

十九、客户端信息

1、浏览器名称(Browser Name

Q:我如何检测浏览器名称?

A:要获取用户浏览器的实际名称,你可以用navigator.appNamenavigator.userAgent属性。userAgent属性比appName更可靠些,例如,Firefox(和其他一些浏览器)由于兼容Netscape Navigator,因此对navigator.appName可能返回“Netscape”。

下面的代码实例使用navigator.userAgent实现浏览器检测。同时,它也使用了navigator.appNamenavigator.appVersion,仅在userAgent返回非期望形式时作为参考。下面就是在你浏览器中输出:

例子中进行浏览器检测的源代码是:


2、浏览器版本(Browser Version

Q:如何检测浏览器版本?

A:不幸得是,navigator.appVersion在检测上浏览器版本上并不够好。例如,在很多支持JavaScript的浏览器,navigator.appVersion的值是兼容的Netscape Navigator的版本,而不是用户浏览器的实际版本。(甚至,在JavaScript应用的早期,Microsoft Internet Explorer 3的navigator.appVersion的返回值是2,就意味着它兼容于Netscape Navigator2。)

因此,要获得任何上述浏览器的完全版本数,你需要依赖navigator.userAgent的返回值,就像浏览器名称中的例子。下面就是你的浏览器的名称和版本:

(源代码见文章浏览器名称

3、操作系统(Operating System

Q:如何检测客户机上的操作系统?

A:要检测客户机上的操作系统,脚本需要分析navigator.appVersion的值。下面就是一个简单的例子,它将操作系统的名称赋给OSName变量。


在你的操作系统上,这段脚本的结果是:

(要获得更详细的操作系统信息,脚本可以对navigator.appVersion做更加复杂的分析,但是原理是一样。)

4、屏幕尺寸(Screen Size

Q:如何获取客户机的屏幕尺寸?

A:要检测客户机的屏幕尺寸,可以使用属性screen.widthscreen.height,这两个属性在主要浏览器的4上版本都被支持。如果你的用户使用Netscape Navigator 3并且启用了Java,你可以用Java调用来获得屏幕的宽和高(见下面的例子)。

下面的代码将屏幕的实际宽和高分别赋给了变量screenWscreenH,然后输出它们的值。如果用户使用的是旧版浏览器,那么screenWsreenH就分别被赋值为640和480。


在你的浏览器中,代码输出为:

5、浏览器窗口尺寸(Browser Window Size

Q:如何获取浏览器窗口的尺寸?

A:要确定浏览器窗口的实际尺寸,可以使用下面的属性

  • 在Netscape Navigator 4中:window.innerWidthwindow.innerHeight
  • 在Microsoft Internet Explorer中:document.body.offsetWidth、document.body.offsetHeight

注意,document.body.offsetWidhtdocument.body.offsetHeight必须在浏览器加载<BODY>标签完成后执行。

在下面的代码中,winWwinH分别被赋值为实际浏览器窗口的宽和高,然后被输出。如果用户使用旧版浏览器,那么winWwinH将分别被设为630和460。


在你的浏览器中,代码的执行结果是:

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics