load-script2
Version:
Dynamic script loading for modern browsers
26 lines (21 loc) • 743 B
JavaScript
/*! load-script2. MIT License. Feross Aboukhadijeh <https://feross.org/opensource> */
module.exports = function loadScript2 (src, attrs, parentNode) {
return new Promise((resolve, reject) => {
const script = document.createElement('script')
script.async = true
script.src = src
for (const [k, v] of Object.entries(attrs || {})) {
script.setAttribute(k, v)
}
script.onload = () => {
script.onerror = script.onload = null
resolve(script)
}
script.onerror = () => {
script.onerror = script.onload = null
reject(new Error(`Failed to load ${src}`))
}
const node = parentNode || document.head || document.getElementsByTagName('head')[0]
node.appendChild(script)
})
}