Skip to content

Instantly share code, notes, and snippets.

@AnatoliyAkhmatov
Created August 4, 2021 11:56
Show Gist options
  • Save AnatoliyAkhmatov/b4c9339266fed81c28410a9301b204dd to your computer and use it in GitHub Desktop.
Save AnatoliyAkhmatov/b4c9339266fed81c28410a9301b204dd to your computer and use it in GitHub Desktop.
window.onDo = (f) => {
let loaded = false
let d = () => {
if (!loaded) {
f()
loaded = true
window.removeEventListener('scroll', d, {passive: true})
window.removeEventListener('touchstart', d)
document.removeEventListener('mouseenter', d)
document.removeEventListener('mousemove', d)
document.removeEventListener('click', d)
}
}
window.addEventListener('scroll', d, {passive: true})
window.addEventListener('touchstart', d)
document.addEventListener('mouseenter', d)
document.addEventListener('mousemove', d)
document.addEventListener('click', d)
}
window.appendScript = (src, inner = false) => {
return new Promise(resolve => {
let script = document.createElement('script')
if (inner) {
script.innerHTML = src
} else {
script.src = src
}
script.type = 'text/javascript'
script.onload = () => resolve()
document.body.appendChild(script)
})
}
window.scriptLazy = (src, inner = false) => {
return new Promise(resolve => {
onDo(() => {
appendScript(src, inner).then(() => {
resolve()
})
})
})
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment