utils.js (954B)
1 function loadScript(url, { doc = document }={}) { 2 return new Promise((resolve, reject) => { 3 const script = doc.createElement('script'); 4 script.onload = () => resolve(); 5 script.onerror = () => reject(Error("Script load failed")); 6 script.src = url; 7 doc.body.appendChild(script); 8 }) 9 } 10 11 function preloadImage(url, { doc = document }={}) { 12 return new Promise((resolve, reject) => { 13 const preload = doc.createElement('link'); 14 preload.rel = 'preload'; 15 preload.as = 'image'; 16 preload.onload = () => resolve(); 17 preload.onerror = () => resolve(); 18 preload.href = url; 19 doc.body.appendChild(preload); 20 }) 21 } 22 23 /** 24 * 25 * @param {Document} document 26 * @param {string|URL} url 27 * @returns {HTMLAudioElement} 28 */ 29 function appendAudio(document, url) { 30 const audio = document.createElement('audio'); 31 audio.muted = true; 32 audio.src = url; 33 audio.preload = true; 34 document.body.appendChild(audio); 35 return audio; 36 }