Difference between revisions of "How to determine browser capabilities"

From Joomla! Documentation

(Marked this version for translation)
(Some markup and phrasing changes.)
 
Line 2: Line 2:
 
<translate>
 
<translate>
 
<!--T:1-->
 
<!--T:1-->
Different web browsers sometimes show differences in the way that they render a page. For this reason you may wish to find out which particular browser a visitor is using, in order to use some browser-specific CSS.
+
Web browsers sometimes differ in the way they render a page. For this reason you may wish to find out which particular browser a visitor is using in order to use some browser-specific CSS.
 
</translate>
 
</translate>
  
 
<translate>
 
<translate>
 
<!--T:2-->
 
<!--T:2-->
The following JavaScript defines a simple browser detection object which determines the browser's name and version by decoding the <code>navigator.userAgent</code> string.
+
The following JavaScript defines a simple browser detection object that determines the browser's name and version by decoding the ''navigator.userAgent'' string.
 
</translate>
 
</translate>
  
<source lang="javascript">
+
<syntaxhighlight lang="javascript">
 
function browserDetect()
 
function browserDetect()
 
{
 
{
Line 32: Line 32:
 
   }
 
   }
 
}
 
}
</source>
+
</syntaxhighlight>
  
 
<translate>
 
<translate>
 
<!--T:3-->
 
<!--T:3-->
In order to use this in a script, you then create an instance of this object:
+
To use this in a script, you create an instance of this object:
 
</translate>
 
</translate>
  
<source lang="javascript">
+
<syntaxhighlight lang="javascript">
 
var browser = new browserDetect();
 
var browser = new browserDetect();
</source>
+
</syntaxhighlight>
  
 
<translate>
 
<translate>
 
<!--T:4-->
 
<!--T:4-->
The property <code>browser.name</code> will then give you then name of the browser (MSIE, Opera, Netscape or Firefox), <code>browser.mainVersion</code> will give you the main version number and <code>browser.minorVersion</code> will give you the minor version number.
+
The property ''browser.name'' will then give you the name of the browser (MSIE, Opera, Netscape or Firefox), ''browser.mainVersion'' will show the main version number and ''browser.minorVersion'' contains the minor version number.
 
</translate>
 
</translate>
  
 
<translate>
 
<translate>
 
<!--T:5-->
 
<!--T:5-->
However you should be aware that this is not foolproof, and it is generally better (in this writer's opinion) to avoid writing browser-specific code as far as possible.
+
This is not foolproof. It is much better to avoid writing browser-specific code.
 
</translate>
 
</translate>
  

Latest revision as of 10:55, 24 November 2022

Other languages:
Deutsch • ‎English • ‎Nederlands • ‎español • ‎français • ‎中文(台灣)‎

Web browsers sometimes differ in the way they render a page. For this reason you may wish to find out which particular browser a visitor is using in order to use some browser-specific CSS.

The following JavaScript defines a simple browser detection object that determines the browser's name and version by decoding the navigator.userAgent string.

function browserDetect()
{
  var browserNames=new Array("Opera", "MSIE","Netscape","Firefox");
  this.name="NK";
  this.mainVersion="NK";
  this.minorVersion="NK";
  
  for (var i=0; i< browserNames.length; i++)
  {
   var pattern='('+browserNames[i]+')'+'.([0-9]+)\.([0-9]+)';    
   var myRegExp=new RegExp(pattern);
   if (myRegExp.test(navigator.userAgent))
    {
      var results=myRegExp.exec(navigator.userAgent);
      this.name=results[1];
      this.mainVersion=results[2];
      this.minorVersion=results[3];
      break;
    }
  }
}

To use this in a script, you create an instance of this object:

var browser = new browserDetect();

The property browser.name will then give you the name of the browser (MSIE, Opera, Netscape or Firefox), browser.mainVersion will show the main version number and browser.minorVersion contains the minor version number.

This is not foolproof. It is much better to avoid writing browser-specific code.