Sha256: 17728330bc13de3238b1440d9455e09492ac3dd099e8e0fe9b02897e622640dc

Contents?: true

Size: 1.75 KB

Versions: 16

Compression:

Stored size: 1.75 KB

Contents

/**
 * Detect browser via user agent. Use only if feature detection is not
 * an option.
 */
pageflow.browser.agent = {
  matchesSilk: function() {
    return navigator.userAgent.match(/\bSilk\b/);
  },

  matchesDesktopSafari9: function() {
    return this.matchesSafari9() && !this.matchesMobilePlatform();
  },

  matchesDesktopSafari10: function() {
    return this.matchesSafari10() && !this.matchesMobilePlatform();
  },

  matchesSafari9: function() {
    var matchers = [/Safari\//i, /Version\/9/i];

    return _.all(matchers, function(matcher) {
      return navigator.userAgent.match(matcher);
    });
  },

  matchesSafari10: function() {
    var matchers = [/Safari\//i, /Version\/10/i];

    return _.all(matchers, function(matcher) {
      return navigator.userAgent.match(matcher);
    });
  },

  /**
   * Returns true on iOS Safari.
   * @return {boolean}
   */
  matchesMobileSafari: function() {
    var matchers = [/iPod/i, /iPad/i, /iPhone/i];

    return _.any(matchers, function(matcher) {
      return navigator.userAgent.match(matcher);
    });
  },

  /**
   * Returns true on iOS or Android.
   * @return {boolean}
   */
  matchesMobilePlatform: function() {
    var matchers = [/iPod/i, /iPad/i, /iPhone/i, /Android/i, /Silk/i, /IEMobile/i];

    return _.any(matchers, function(matcher) {
      return navigator.userAgent.match(matcher);
    });
  },

  /**
   * Returns true on Internet Explorser version 9, 10 and 11.
   * @return {boolean}
   */
  matchesIEUpTo11: function() {
    return navigator.userAgent.match(/Trident\//);
  },

  /**
   * Returns true in InApp browser of Facebook app.
   * @return {boolean}
   */
  matchesFacebookInAppBrowser: function() {
    return navigator.userAgent.match(/FBAN/) && navigator.userAgent.match(/FBAV/);
  }
};

Version data entries

16 entries across 16 versions & 1 rubygems

Version Path
pageflow-12.1.0 app/assets/javascripts/pageflow/browser/agent.js
pageflow-12.0.4 app/assets/javascripts/pageflow/browser/agent.js
pageflow-12.0.3 app/assets/javascripts/pageflow/browser/agent.js
pageflow-12.0.2 app/assets/javascripts/pageflow/browser/agent.js
pageflow-12.0.1 app/assets/javascripts/pageflow/browser/agent.js
pageflow-12.0.0 app/assets/javascripts/pageflow/browser/agent.js
pageflow-12.0.0.rc7 app/assets/javascripts/pageflow/browser/agent.js
pageflow-12.0.0.rc6 app/assets/javascripts/pageflow/browser/agent.js
pageflow-0.11.4 app/assets/javascripts/pageflow/browser/agent.js
pageflow-12.0.0.rc5 app/assets/javascripts/pageflow/browser/agent.js
pageflow-12.0.0.rc4 app/assets/javascripts/pageflow/browser/agent.js
pageflow-12.0.0.rc3 app/assets/javascripts/pageflow/browser/agent.js
pageflow-12.0.0.rc2 app/assets/javascripts/pageflow/browser/agent.js
pageflow-12.0.0.rc1 app/assets/javascripts/pageflow/browser/agent.js
pageflow-0.11.3 app/assets/javascripts/pageflow/browser/agent.js
pageflow-0.11.2 app/assets/javascripts/pageflow/browser/agent.js