-
Notifications
You must be signed in to change notification settings - Fork 2
/
css.js
45 lines (41 loc) · 1.03 KB
/
css.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
(function(win) {
var doc = win.document,
docBody = doc.body,
createLink = function(src) {
var link = doc.createElement('link');
link.type = 'text/css';
link.rel = 'stylesheet';
link.href = src;
return link;
},
resolveClassName = function(moduleName) {
var parts = moduleName.split('/');
return parts[parts.length - 1].replace('.', '-') + '-loaded';
};
define({
load: function (name, req, load) {
var head = doc.getElementsByTagName('head')[0],
test,
interval,
link;
test = doc.createElement('div');
test.className = resolveClassName(name);
test.style.cssText = 'position: absolute;left:-9999px;top:-9999px;';
docBody.appendChild(test);
if (test.offsetHeight > 0) {
docBody.removeChild(test);
load();
} else {
link = createLink(name),
head.appendChild(link);
interval = win.setInterval(function () {
if (test.offsetHeight > 0) {
clearInterval(interval);
docBody.removeChild(test);
load(link);
}
}, 50);
}
}
});
})(window);