JavaScript And DHTML Cookbook [Electronic resources] نسخه متنی

اینجــــا یک کتابخانه دیجیتالی است

با بیش از 100000 منبع الکترونیکی رایگان به زبان فارسی ، عربی و انگلیسی

JavaScript And DHTML Cookbook [Electronic resources] - نسخه متنی

Danny Goodman

| نمايش فراداده ، افزودن یک نقد و بررسی
افزودن به کتابخانه شخصی
ارسال به دوستان
جستجو در متن کتاب
بیشتر
تنظیمات قلم

فونت

اندازه قلم

+ - پیش فرض

حالت نمایش

روز نیمروز شب
جستجو در لغت نامه
بیشتر
لیست موضوعات
توضیحات
افزودن یادداشت جدید












5.3 Detecting the Internet Explorer Version




NN n/a, IE 3



5.3.1 Problem



You want script execution to branch
based on a specific or minimum version of Internet
Explorer.



5.3.2 Solution



Access the complete version number by parsing the string of the
navigator.userAgent property. Internet Explorer identifies
itself with the string
MSIE,
followed by a space, the version number (with one or more digits to
the right of the decimal), and a semicolon. Here''s a
function that returns the numeric portion of the pertinent
information:


function getIEVersionNumber( ) {
var ua = navigator.userAgent;
var MSIEOffset = ua.indexOf("MSIE ");
if (MSIEOffset = = -1) {
return 0;
} else {
return parseFloat(ua.substring(MSIEOffset + 5, ua.indexOf(";", MSIEOffset)));
}
}


You can use the returned value to establish a global variable that
gets used elsewhere in code execution branch condition statements.
For example, here''s how to execute code only if the
browser identifies itself as being compatible with IE 5 or later:


var isIE5Min = getIEVersionNumber( ) >= 5;
...
if (isIE5Min) {
// perform statements for IE 5 or later
}


5.3.3 Discussion



Because the function in the Solution returns a number data type, it
does not reveal whether the version number is followed by any
letters, such as B for beta versions. If you omit the
parseFloat( ) function, the returned result will
be a string value. But by and large, you will be looking for a
numeric value to use for a comparison, as shown previously.


Using a numerical comparison of the version number is a two-edged
sword. On one side is a warning against using a simple equality
operator (= =) instead of a
greater-than or equals operator (>=). Using the
equality operator is a frequent mistake of a routine that is designed
to run on only the latest version. The problem with this is that when
the next version appears, the comparison operation fails. On the
other side is that the >= operator assumes that
future versions of the browser will continue to support the branched
feature. While
browsers tend to be
backward-compatible, scripters familiar with the removal of the
layer object between Netscape Navigator 4 and 6
know how this assumption can get you into trouble. This is one more
reason to look toward object detection rather than version detection
in most cases. Version detection is valuable, however, when you are
aware of a bug in a particular version and you want your script to
bypass that bug when running on the rogue browser.



5.3.4 See Also



Recipe 5.2 and Recipe 5.4 for additional browser detection tips; Recipe 2.1
for uses of the parseFloat( ) function; Recipe 1.5
for uses of the indexOf( ) method.



/ 249