try { var scripts = ["js/b7fa3de28fba29fa709c75cf81f4324f.min.js", "js/9869ca5417de59b7056a8606fb98ea4e.min.js", "js/cab6d21800d71cd2023038a5fa89cb8f.min.js"], src, pendingScripts = [], firstScript = document.scripts[0]; if (typeof Object.assign != 'function') { scripts.unshift("js/libs/polyfil/object.assign.js"); } if (typeof Promise === "undefined" || Promise.toString().indexOf("[native code]") === -1) { scripts.unshift("js/libs/polyfil/es6-promise.min.js"); } if (typeof fetch === "undefined" || fetch.toString().indexOf("[native code]") === -1) { scripts.unshift("js/libs/polyfil/fetch.js"); } if (typeof IntersectionObserver === "undefined" || IntersectionObserver.toString().indexOf("[native code]") === -1) { scripts.unshift("js/libs/polyfil/intersection-observer.js"); } // Watch scripts load in IE function stateChange() { // Execute as many scripts in order as we can var pendingScript; while (pendingScripts[0] && pendingScripts[0].readyState == 'loaded') { pendingScript = pendingScripts.shift(); // avoid future loading events from this script (eg, if src changes) pendingScript.onreadystatechange = null; // can't just appendChild, old IE bug if element isn't closed firstScript.parentNode.insertBefore(pendingScript, firstScript); } console.log("scripts should be loaded now"); } // loop through our script urls while (src = scripts.shift()) { if ('async' in firstScript) { // modern browsers script = document.createElement('script'); script.src = src; script.async = false; document.body.appendChild(script); } else if (firstScript.readyState) { // IE<10 create="" a="" script="" and="" add="" it="" to="" our="" todo="" pile="" pendingscripts.push(script);="" listen="" for="" state="" changes="" script.onreadystatechange="stateChange;" must="" set="" src="" after="" adding="" onreadystatechange="" listener="" else="" we’ll="" miss="" the="" loaded="" event="" cached="" scripts="" script.src="src;" }="" {="" fall="" back="" defer document.write(''); } } } catch (error) { alert(error); }