Webmasters Heaven, Free submission, Free Promotion, Free Tools
Backword Forward Home add this page to favoirates send this page to a friend print this page icons articles Webmaster Tools Web Site Submit
sitemap
Free Icons Free Articels Free Tools Website submission

Articles Category  ]

Google
 
Advertising
Affiliates
Blogs
CGI
CSS
DHTML
Domain Names
ECommerce
Email
HTML
Internet
Javascript
Link Popularity
Marketing
MLM
Newsletters
Promotion
RSS
Search Engines
Site Security
Traffic Analysis
Web Hosting
Web Design
Webmasters


articles -> javascript
Article Title Author
A Recursive Filtering Workbench in Java Richard G. Baldwin
7 Reasons You Should Avoid JavaScript Dynamic Navigation Iain Row
Using External JavaScript Source Files Sasch Mayer
dhtmlxTabbar - Creating Dynamic Tabbed Interface Has Never Been Easier! Ivan Petrenko
dhtmlxTree version 1.3 - Add Flexibility to Your Web Trees Ivan Petrenko
Java tips & tutorials - best Subscriptions for learning Java Groshan Fabiola
Ajaxgear Toolkit Allan Spartacus Mangune
Evaluation of Keywords for an AdSense Oriented Website F. Terrence Markle
Submit form conditionally - JavaScript SiteArticles.com
New Customizable JavaScript Menu for Web Applications Ivan Petrenko
Capturing Video And Audio Streams How-To John Deprice
How to handle web surfers, who disabled JavaScript Michael Kashirin
Simplified form to mail: Unlimitted input Endar WS
Anti right-click pop up : pop up will appear if visitors right-clicks his mouse Endar WS
Password protected document : Protect your web page with specific password for each member Endar WS
Building HTML codes automatically, just copy&paste your content Endar WS
Javascript Password Protection Timur Abdrakhmanov
How to test for the Javascript DOM? Riaan Pieterse
Interactive Forms Brian Zimmer
Validating Numerical Input with JavaScript David Morse
Instant plug-in scripts that help you profit... "Special offer expiry date with a twist" Michel Komarov
Javascript Basics 01 Lisa Spurlin
Javascript; Browser Detection and Page Redirection William J. Tolson
Ask Mr. D - JavaScript Bill Daugherty
Grow Your Subscribers Exponentially With These Javascript E-mail Capture Boxes! Vishal Rao
Some Useful JavaScript Tricks Mitchell Harper
Validating Form Input in JavaScript Amrit Hallan
Using External JavaScript Files Amrit Hallan
Guide to creating simple chromeless popup windows Michael Bloch
Dirty Web Promotion Tricks #1 - Legitimate and Malicious Javascripts Michael Bloch
Spice Up Your Web Site with JavaScript Shelley Lowery
Make your website scream with excitement with Java! Johnathan Wyka-Warzecha

Javascript; Browser Detection and Page Redirection   by William J. Tolson


A recent project was developed using Internet Explorer 5.5 as the browser of choice. Aware of browser incompatibilities, viewing the web page using three other commonly used browsers, Internet Explorer 4.0, Netscape Navigator 6.1, and Netscape Navigator 4.7 revealed some 'distortions'. This was mainly due to whether or not a particular browser could interpret style sheets, and if so how the style sheets were interpreted.

It was apparent that the page code either needed to be downgraded to the 'lowest common denominator' or alternative versions of the web page were needed for Netscape 6.1, Netscape 4.7, and Internet Explorer 4.0. Therefore, a version optimized for Netscape 6.1 was created, as well as another version compatible for both Netscape 4.7 and Internet Explorer 4.0. (This was before Internet Explorer 6.0 and Netscape 6.2 were available.)

Review of several current web sites and textbooks on Javascript presented different approaches to writing script to first detect a user's browser, and then depending on the browser and version, to redirect the user to a specific page. In this particular case, none of the recommendations or solutions were what was needed. After a good deal of testing and re-testing, the following script examples were assembled.

Below are five different examples / variations of some Javascript that is to be placed on a page that is optimized for Internet Explorer 5.5. These scripts will then automatically detect the visitor's browser and version, and then automatically direct the particular browser in one of three directions. They are;

If a visitor is using Internet Explorer 5.5, to remain on the current page.

If a visitor is using Netscape 6.1, to be redirected to a page that has been optimized for Netscape 6.1.

If a visitor is using Internet Explorer 4.0 or Netscape 4.7, to be redirected to a third page that has been written specifically for either of these browser versions.

Explanatory discussion follows the script examples.

#1 <script language="javascript"> <!-- if (navigator.appName.indexOf("Netscape") != -1) { if (navigator.appVersion.indexOf("5.0") != -1) window.location="nn61.htm"; }

if (navigator.appName.indexOf("Netscape") != -1) { if (navigator.appVersion.indexOf("5.0") == -1) window.location="ienn4.htm"; }

if (navigator.appName.indexOf("Internet Explorer") != -1) { if (navigator.appversion.indexOf("MSIE 4") != -1) window.location="ienn4.htm"; } // -->

</script> ---------------------------------------------------------------- #2 <script language="javascript">

<!-- if (navigator.appName.indexOf("Netscape") != -1) { window.location="nn61.htm"; }

if (navigator.appName.indexOf("Netscape") != -1) { if (navigator.appVersion.indexOf("5.0") == -1) window.location="ienn4.htm"; }

if (navigator.appVersion.indexOf("MSIE 4") != -1) { window.location="ienn4.htm"; } // -->

</script> --------------------------------------------------------------- #3 <script language="javascript">

<!-- if (navigator.appVersion.indexOf("5.0") != -1) { window.location="nn61.htm"; }

if (navigator.appName.indexOf("Netscape") != -1) { if (navigator.userAgent.indexOf("Mozilla/4") != -1) window.location="ienn4.htm"; }

if (navigator.appVersion.indexOf("MSIE 4") != -1) { window.location="ienn4.htm"; } // -->

</script> --------------------------------------------------------------- #4 <script language="javascript">

<!-- if (navigator.appVersion.indexOf("5.0") != -1) { window.location="nn61.htm"; }

if (document.layers) { if (navigator.userAgent.indexOf("Mozilla/4") != -1) window.location="ienn4.htm"; }

if (navigator.appVersion.indexOf("MSIE 4") != -1) { window.location="ienn4.htm"; } // -->

</script> --------------------------------------------------------------- #5 <script language="javascript">

<!-- if (navigator.appVersion.indexOf("5.0") != -1) { window.location="nn61.htm"; }

if ( ! (document.all)) { if (navigator.appVersion.indexOf("5.0") == -1) window.location="ienn4.htm"; }

if (navigator.appVersion.indexOf("MSIE 4") != -1) { window.location="ienn4.htm"; } // -->

</script> ---------------------------------------------------------------

Any of these five different scripts can be utilized. These have been compiled after many attempts at using other suggested scripts that either were too limited, were not applicable to identifying version 5 and higher browsers, or just did not seem to work as anticipated.

All these scripts are a series of conditional statements, which are read by the visitor's browser when the web page 'ie55.htm' is loaded.

1. The browser reads the first statement and if it is Netscape 6.1, it is redirected to the page written specifically for Netscape 6.1. If not,

2. The browser reads the next statement and if it is Netscape 4.7, it is redirected to the page written for the 'number 4' version of either Internet Explorer or Netscape Navigator. If not,

3. The browser reads the next statement and if it is Internet Explorer 4.0, it too is redirected to the page written for the 'number 4' version of either Internet Explorer or Netscape Navigator. And lastly,

4. If none of the statements apply, the browser will remain on the same page that contains the script and proceed to read the remainder of the page.

Next are several observations made after consulting several Subscriptions (online and in print) and conducting many 'trial and error' sessions.

Peculiarities encountered that caused difficulties include;

1. Regarding the line that identifies a browser's version number

(navigator.appVersion.indexOf(" ") != -1) Internet Explorer; you must use "MSIE 4", not "MSIE 4.0", "4", or "4.0". The same is true whether or not this additional 'if' statement, (navigator.appName.indexOf("Internet Explorer") != -1), is included as in #1. Use "MSIE 5" to identify Internet Explorer 5.5. **See below for more about Internet Explorer and version numbers. Version 5.5 does not fall under the category of version 5 or higher.

Netscape Navigator; in this statement either "5.0" or "5" will work with Netscape 6.1 resulting in directing the browser to the page optimized for Netscape 6.1. if (navigator.appName.indexOf("Netscape") != -1) { if (navigator.appVersion.indexOf("5.0") != -1) window.location="nn61.htm"; } But in this statement, "5.0" must be used. "5" results in Netscape 4.7 being directed to the page optimized for Netscape 6.1 instead of the page optimized for Netscape 4.7. The reason is unknown. This peculiarity was discovered through 'trial and error'.

if (navigator.appName.indexOf("Netscape") != -1) { if (navigator.appVersion.indexOf("5.0") == -1) window.location="ienn4.htm"; } ** NOTE: Attempting to separate browsers based upon their version number is not as straight forward as it might seem. The reason is that both Internet Explorer 4.0 and Internet Explorer 5.5 have the same version number of 4! Also Netscape 6.1 has a version number of 5! So trying to detect and then select browsers based on version numbers results in confusion. In particular

The version number of '5 and higher' will exclude Internet Explorer 5.5 The version number of '4 and lower' will include Internet Explorer 5.5 The version number of '6 and higher' will exclude Netscape 6.1

2. Regarding the line that identifies a browser's name

(navigator.app.Name.indexOf(" ") != -1)

Internet Explorer; you must use "Internet Explorer", "Microsoft", or "Microsoft Internet Explorer". "MSIE" is not recognized.

3. All of these browsers, Netscape 4.7 and 6.1, and Internet Explorer 4.0 and 5.5, have the same code name of Mozilla.

Therefore these browsers can not differentiated based on their code name.

Conclusions;

Remember that these scripts are to be placed on the page that has been optimized for viewing using the Internet Explorer 5.5 browser.

If a Netscape 6.1 browser is being used, the visitor is automatically redirected to the page that has been optimized for Netscape 6.1.

If a Netscape 4.7 browser is being used, the visitor is automatically redirected to the page that has been optimized for either Netscape 4.7 or Internet Explorer 4.0.

If an Internet Explorer 4.0 browser is being used, the visitor is automatically redirected to the page that has been optimized for either Netscape 4.7 or Internet Explorer 4.0.

If none of these three 'if' conditional statements are true, the browser will remain on the present page and will continue on with interpreting that page, in this case the page that has been optimized for Internet Explorer 5.5.

To use these scripts, remember to replace the fictitious pages "nn61.htm", "ienn4.htm", and "ie55.htm" with your actual pages. Also if using one of these scripts on a page that is created for viewing using a browser other than IE 5.5, further adjustments will be necessary, as well as, then re-testing the script(s).

Remember that some of the other browser types that are in use include, i.e. AOL, Netscape Navigator 3.0 or lower, Internet Explorer 3.0 or lower, Opera (various versions), Web TV, Lynx, Konqueror. All of these are used in small numbers and whether one wants to address each one of these browsers is an individual decision.

There are different web sites that contain statistics on browser usage that can be reviewed. The best source of information on the actual browsers that are used to view your web site are your own visitor logs. Check those as they may or may not agree with other published web statistics.

Obviously Intranets are a special environment and one in which the pages must be optimized for the particular browser that is in use on the Intranet machines. This is a much easier situation to have to contend with.

Unfortunately until the 'browser wars' come to an end and an 'across the board acceptance' of the W3C's guidelines for coding is the rule, browser incompatibilities will continue to influence web page construction.

About the Author

After being a practicing dental specialist for twenty-five years, William J. Tolson became intrigued with the Internet and web page design. Self-taught and initially designing and hand coding his own personal web sites, he now devotes all his time as an independent contractor focusing on web page design, optimization and accessibility for all.


[Advertisement ]