The easiest way to load a library at any time is via a function which inserts and HTML selector in the head. I use this a lot for loading/unloading libraries for maps or video players. Here’s an example for CSS, similarly you would do for Javascript libraries and scripts.
Simply put, if you don’t find a library already loaded via an HTML selector, load it.
const addCSS = (css, id) => {
if (!document.querySelectorAll(`link[id='${id}']`).length) {
const link = document.createElement('LINK')
link.rel = 'stylesheet'
link.href = css
link.id = id
link.type = 'text/css'
document.head.appendChild(link)
}
}
Here’s an example from the official FB API for Javascript:
if (!document.getElementById('facebook-jssdk')) {
(function (d, s, id) {
var js; var fjs = d.getElementsByTagName(s)[0]
// if (d.getElementById(id)) { return }
js = d.createElement(s); js.id = id
js.src = 'https://connect.facebook.net/en_US/sdk.js'
fjs.parentNode.insertBefore(js, fjs)
}(document, 'script', 'facebook-jssdk'))
}