Ver Fonte

fix issue with js dom/ready initialization

Jason Rivard há 3 anos atrás
pai
commit
93c3424482

+ 0 - 13
webapp/src/main/webapp/WEB-INF/jsp/peoplesearch.jsp

@@ -49,18 +49,5 @@
 <pwm:script-ref url="/public/resources/webjars/pwm-client/vendor.js" />
 <pwm:script-ref url="/public/resources/webjars/pwm-client/peoplesearch.ng.js" />
 
-<pwm:script>
-    <script type="text/javascript">
-        <%-- including the angular injections this way delays them after the dojo load and prevents errors --%>
-        PWM_GLOBAL['startupFunctions'].push(function() {
-            setTimeout(function(){
-                //PWM_MAIN.loadJsFile( PWM_GLOBAL['url-context'] + "/public/resources/webjars/pwm-client/vendor.js");
-                //PWM_MAIN.loadJsFile( PWM_GLOBAL['url-context'] + "/public/resources/webjars/pwm-client/peoplesearch.ng.js");
-
-            },5000);
-        });
-    </script>
-</pwm:script>
-
 </body>
 </html>

+ 20 - 9
webapp/src/main/webapp/public/resources/js/main.js

@@ -186,19 +186,20 @@ PWM_MAIN.initPage = function() {
         });
     }
 
-    for (var i = 0; i < PWM_GLOBAL['startupFunctions'].length; i++) {
-        try {
-            PWM_GLOBAL['startupFunctions'][i]();
-        } catch(e) {
-            console.error('error executing startup function: ' + e);
-        }
-    }
+    PWM_MAIN.JSLibrary.onPageLoad(function(){
+        PWM_MAIN.JSLibrary.forEachInArray(PWM_GLOBAL['startupFunctions'],function(startupFunction){
+            try {
+                startupFunction();
+            } catch(e) {
+                console.error('error executing startup function: ' + e);
+            }
+        })
+    });
 
     PWM_MAIN.TimestampHandler.initAllElements();
 
     ShowHidePasswordHandler.initAllForms();
-    var loadTime = window.performance.timing.domContentLoadedEventEnd-window.performance.timing.navigationStart;
-    PWM_MAIN.log('initPage completed [load time=' + loadTime + ']');
+    PWM_MAIN.log('initPage completed');
 };
 
 PWM_MAIN.initDisplayTabPreferences = function() {
@@ -1395,6 +1396,16 @@ PWM_MAIN.JSLibrary.removeElementFromDom = function(elementID) {
     }
 };
 
+PWM_MAIN.JSLibrary.onPageLoad = function(callback) {
+    if (document.readyState === "complete") {
+        callback();
+    } else {
+        window.addEventListener("load",function(event) {
+            callback();
+        }, false);
+    }
+};
+
 PWM_MAIN.toggleFullscreen = function(iconObj,divName) {
     var obj = PWM_MAIN.getObject(divName);