Files
Fuchs_Intranet/Fuchs/web/loadcss/onloadCSS_Array.js
T

56 lines
1.6 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
/*! onloadCSS. (onload callback for loadCSS) [c]2017 Filament Group, Inc. MIT License */
/* global navigator */
/* exported onloadCSS */
function onloadCSS(ss, options ) {
options = options || {};
let f = function (si) {
return new Promise((resolve, reject) => {
let called, success = false;
function newcbs() {
if (!called) {
called = true;
resolve(true);
}
} function newcbe() {
if (!called && callback) {
called = true;
resolve(false);
}
}
if (ss.addEventListener) {
si.addEventListener('load', newcb);
} else if (ss.attachEvent) {
si.attachEvent('onload', newcb);
}
// This code is for browsers that dont support onload
// No support for onload (it'll bind but never fire):
// * Android 4.3 (Samsung Galaxy S4, Browserstack)
// * Android 4.2 Browser (Samsung Galaxy SIII Mini GT-I8200L)
// * Android 2.3 (Pantech Burst P9070)
// Weak inference targets Android < 4.4
if ('isApplicationInstalled' in navigator && 'onloadcssdefined' in ss) {
si.onloadcssdefined(newcb);
}
});
};
let fin = async function (success) {
if (success === true && typeof options.success === 'function') {
options.success();
} else if (success === true && typeof options.success === 'object' && options.success instanceof Promise) {
await options.success();
}
options.complete()
}
if (Array.isArray(ss)) {
let total = ss.length;
Promise.all(ss.map(f)).then(function (resolveValues) {
var ok = resolveValues.reduce((sum, x) => sum + (x === true ? 1 : 0));
fin(total === ok);
});
} else {
f(ss);
}
}