blob: 351d96530eddfef9d41d5e6e3bb6a7192fb4344d (
plain)
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
|
(() => {
const global = window.gl || (window.gl = {});
class LoadScript {
static load(source, id = '') {
if (!source) return Promise.reject('source url must be defined');
if (id && document.querySelector(`#${id}`)) return Promise.reject('script id already exists');
return new Promise((resolve, reject) => this.appendScript(source, id, resolve, reject));
}
static appendScript(source, id, resolve, reject) {
const scriptElement = document.createElement('script');
scriptElement.type = 'text/javascript';
if (id) scriptElement.id = id;
scriptElement.onload = resolve;
scriptElement.onerror = reject;
scriptElement.src = source;
document.body.appendChild(scriptElement);
}
}
global.LoadScript = LoadScript;
return global.LoadScript;
})();
|