| 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); |
| }) |
| } |
| |
| /** |
| * |
| * @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; |
| } |