36 lines
954 B
JavaScript
36 lines
954 B
JavaScript
function loadScript(url, { doc = document }={}) {
|
|
return new Promise((resolve, reject) => {
|
|
const script = doc.createElement('script');
|
|
script.onload = () => resolve();
|
|
script.onerror = () => reject(Error("Script load failed"));
|
|
script.src = url;
|
|
doc.body.appendChild(script);
|
|
})
|
|
}
|
|
|
|
function preloadImage(url, { doc = document }={}) {
|
|
return new Promise((resolve, reject) => {
|
|
const preload = doc.createElement('link');
|
|
preload.rel = 'preload';
|
|
preload.as = 'image';
|
|
preload.onload = () => resolve();
|
|
preload.onerror = () => resolve();
|
|
preload.href = url;
|
|
doc.body.appendChild(preload);
|
|
})
|
|
}
|
|
|
|
/**
|
|
*
|
|
* @param {Document} document
|
|
* @param {string|URL} url
|
|
* @returns {HTMLAudioElement}
|
|
*/
|
|
function appendAudio(document, url) {
|
|
const audio = document.createElement('audio');
|
|
audio.muted = true;
|
|
audio.src = url;
|
|
audio.preload = true;
|
|
document.body.appendChild(audio);
|
|
return audio;
|
|
}
|