|[ Team LiB ]|
5.2 Detecting an Early Browser Version
NN 2, IE 3
For mainstream browsers through Version 4, the navigator.appVersion property returns the complete version of the browser along with further information about the operating system platform. To determine the major generation of the browser, use the parseInt( ) function to extract the integer value of the version:
var isVer4 = (parseInt(navigator.appVersion) = = 4);
var isVer4_74 = (parseFloat(navigator.appVersion) = = 4.74);
var isVer4Min = (parseInt(navigator.appVersion) >= 4); var isVer4_5Min = (parseFloat(navigator.appVersion) >= 4.5);
For any browser version up to Microsoft Internet Explorer 4.0 and the last released version of the Netscape Navigator 4 family (4.79 as of this writing), the navigator.appVersion string begins with accurate information about the browser's version. For example:
Microsoft Internet Explorer 4.01 running on Windows 98 4.0 (compatible; MSIE 4.01; Windows 98) Netscape Navigator 4.79 for the Macintosh PowerPC 4.79 (Macintosh; U; PPC)
But for all subsequent browser versions, the leading characters of the navigator.appVersion string no longer correspond to the browser's actual version number. Instead, the leading number represents the generation of core browser code. Thus, the lead part of the navigator.appVersion string, even for Internet Explorer 6 for Windows, continues to read 4.0.
Newer Netscape browsers are built with an entirely new core engine (the Gecko engine developed by Mozilla). For a variety of historical reasons, this generation of code is counted as the fifth generation. Therefore, because the fifth-generation core engine is used in the Netscape 6 and 7 browsers (and Mozilla releases), the navigator.appVersion string for those browsers begins with 5.0, rather than a number corresponding to the actual browser version.
To determine the precise browser version number for newer browsers, you must use other techniques which are, unfortunately, not cross-browser compatible. These are described in Recipe 5.3 and Recipe 5.4.
5.2.4 See Also
|[ Team LiB ]|