30 lines
737 B
JavaScript
30 lines
737 B
JavaScript
'use strict';
|
|
|
|
async function lazyload() {
|
|
async function lazyloadPerform(element) {
|
|
let content = element.querySelector("noscript");
|
|
if (content) {
|
|
element.innerHTML = content.innerText;
|
|
}
|
|
}
|
|
|
|
// Figure out what to load.
|
|
let elements = document.querySelectorAll(".block-this._media > [data-lazyload]");
|
|
let stack = Array.from(elements);
|
|
console.debug("Lazily loading " + stack.length + " elements...");
|
|
|
|
// Add a lazyloading handler to all entries.
|
|
for (let el of stack) {
|
|
lazyloadPerform(el);
|
|
}
|
|
}
|
|
|
|
if (document.readyState === "complete"
|
|
|| document.readyState === "loaded"
|
|
|| document.readyState === "interactive") {
|
|
lazyload();
|
|
} else {
|
|
document.addEventListener('DOMContentLoaded', () => {
|
|
lazyload();
|
|
});
|
|
} |