Sha256: c902316ad8538d844c8b80fbc155f62bf243ec7ceaaa11257c1ef517646511e1

Contents?: true

Size: 1.27 KB

Versions: 12

Compression:

Stored size: 1.27 KB

Contents

// Compress via uglify:
// uglifyjs load-js-deferred.js -c -m > load-js-deferred.min.js
(function(w, d) {
  function stdOnEnd(script, cb) {
    script.onload = function () {
      this.onerror = this.onload = null;
      cb(null, script);
    };

    script.onerror = function () {
      this.onerror = this.onload = null;
      cb(new Error('Failed to load ' + this.src), script);
    };
  }

  function ieOnEnd(script, cb) {
    script.onreadystatechange = function () {
      if (this.readyState != 'complete' && this.readyState != 'loaded') return;
      this.onreadystatechange = null;
      cb(null, script);
    };
  }

  w._loaded = false;
  w.loadJSDeferred = function(src, cb) {
    function loadJS() {
      w._loaded = true;

      var script = d.createElement('script');
      script.src = src;

      if (cb) {
        ('onload' in script ? stdOnEnd : ieOnEnd)(script, cb);

        if (!script.onload) {
          stdOnEnd(script, cb);
        }
      }

      var ref = d.getElementsByTagName('script')[0];
      ref.parentNode.insertBefore(script, ref);
    }

    if (w._loaded) loadJS();
    else if (w.addEventListener) w.addEventListener('load', loadJS, false);
    else if (w.attachEvent) w.attachEvent('onload', loadJS);
    else w.onload = loadJS;
  }
}(window, document));

Version data entries

12 entries across 12 versions & 1 rubygems

Version Path
jekyll-theme-hydejack-6.6.1 _includes/scripts/load-js-deferred.js
jekyll-theme-hydejack-6.6.0 _includes/scripts/load-js-deferred.js
jekyll-theme-hydejack-6.5.0 _includes/scripts/load-js-deferred.js
jekyll-theme-hydejack-6.4.1 _includes/scripts/load-js-deferred.js
jekyll-theme-hydejack-6.4.0 _includes/scripts/load-js-deferred.js
jekyll-theme-hydejack-6.3.0 _includes/scripts/load-js-deferred.js
jekyll-theme-hydejack-6.2.0 _includes/scripts/load-js-deferred.js
jekyll-theme-hydejack-6.1.0 _includes/scripts/load-js-deferred.js
jekyll-theme-hydejack-6.0.0 _includes/scripts/load-js-deferred.js
jekyll-theme-hydejack-6.0.0.pre.beta3 _includes/scripts/load-js-deferred.js
jekyll-theme-hydejack-6.0.0.pre.beta2 _includes/scripts/load-js-deferred.js
jekyll-theme-hydejack-6.0.0.pre.alpha _includes/scripts/load-js-deferred.js