diff --git a/docs/content/guide/bootstrap.ngdoc b/docs/content/guide/bootstrap.ngdoc index 3be24bb56281..f1a465172647 100644 --- a/docs/content/guide/bootstrap.ngdoc +++ b/docs/content/guide/bootstrap.ngdoc @@ -48,11 +48,10 @@ initialization. # Automatic Initialization -Angular initializes automatically upon `DOMContentLoaded` event, at which point Angular looks for -the {@link api/ng.directive:ngApp `ng-app`} directive which -designates your application root. If the {@link -api/ng.directive:ngApp `ng-app`} directive is found then Angular -will: +Angular initializes automatically upon `DOMContentLoaded` event or when the `angular.js` script is +evaluated if at that time `document.readyState` is set to `'complete'`. At this point Angular looks +for the {@link api/ng.directive:ngApp `ng-app`} directive which designates your application root. +If the {@link api/ng.directive:ngApp `ng-app`} directive is found then Angular will: * load the {@link guide/module module} associated with the directive. * create the application {@link api/AUTO.$injector injector} diff --git a/src/jqLite.js b/src/jqLite.js index 1d92f2ab0d55..2c209ecde516 100644 --- a/src/jqLite.js +++ b/src/jqLite.js @@ -327,9 +327,14 @@ var JQLitePrototype = JQLite.prototype = { fn(); } - this.bind('DOMContentLoaded', trigger); // works for modern browsers and IE9 - // we can not use jqLite since we are not done loading and jQuery could be loaded later. - JQLite(window).bind('load', trigger); // fallback to window.onload for others + // check if document already is loaded + if (document.readyState === 'complete'){ + setTimeout(trigger); + } else { + this.bind('DOMContentLoaded', trigger); // works for modern browsers and IE9 + // we can not use jqLite since we are not done loading and jQuery could be loaded later. + JQLite(window).bind('load', trigger); // fallback to window.onload for others + } }, toString: function() { var value = [];