client

Show:

Methods

(static) profile(navopt) → {Object}

Get an object containing information about the client.

Get an object containing information about the client.

The resulting client object will be in the following format:

{
    'name': 'firefox',
    'layout': 'gecko',
    'layoutVersion': 20101026,
    'platform': 'linux'
    'version': '3.5.1',
    'versionBase': '3',
    'versionNumber': 3.5,
}

Recognised browser names:

  • android (legacy Android browser, prior to Chrome Mobile)
  • chrome (includes Chrome Mobile, Microsoft Edge, Opera, and others)
  • crios (Chrome on iOS, which uses Mobile Safari)
  • edge (legacy Microsoft Edge, which uses EdgeHTML)
  • firefox (includes Firefox Mobile, Iceweasel, and others)
  • fxios (Firefox on iOS, which uses Mobile Safari)
  • konqueror
  • msie
  • opera (legacy Opera, which uses Presto)
  • rekonq
  • safari (including Mobile Safari)
  • silk

Recognised layout engines:

  • edge (EdgeHTML 12-18, as used by legacy Microsoft Edge)
  • gecko
  • khtml
  • presto
  • trident
  • webkit

Note that Chrome and Chromium-based browsers like Opera have their layout engine identified as webkit.

Recognised platforms:

  • ipad
  • iphone
  • linux
  • mac
  • solaris (untested)
  • win

Example:

if ( $.client.profile().layout == 'gecko' ) {
    // This will only run in Gecko browsers, such as Mozilla Firefox.
}

var profile = $.client.profile();
if ( profile.layout == 'gecko' && profile.platform == 'linux' ) {
    // This will only run in Gecko browsers on Linux.
}
Parameters:
Name Type Attributes Description
nav Object <optional>

An object with a 'userAgent' and 'platform' property. Defaults to the global navigator object.

Source:
Returns:

The client object

Type
Object

(static) test(map, profileopt, exactMatchOnlyopt) → {boolean}

Checks the current browser against a support map object.

Checks the current browser against a support map object.

Version numbers passed as numeric values will be compared like numbers (1.2 > 1.11). Version numbers passed as string values will be compared using a simple component-wise algorithm, similar to PHP's version_compare ('1.2' < '1.11').

A browser map is in the following format:

{
    // Multiple rules with configurable operators
    'msie': [['>=', 7], ['!=', 9]],
    // Match no versions
    'iphone': false,
    // Match any version
    'android': null
}

It can optionally be split into ltr/rtl sections:

{
    'ltr': {
        'android': null,
        'iphone': false
    },
    'rtl': {
        'android': false,
        // rules are not inherited from ltr
        'iphone': false
    }
}
Parameters:
Name Type Attributes Default Description
map Object

Browser support map

profile Object <optional>

A client-profile object

exactMatchOnly boolean <optional>
false

Only return true if the browser is matched, otherwise returns true if the browser is not found.

Source:
Returns:

The current browser is in the support map

Type
boolean