@wezom/zz-load
Version:
Lazy loader based on IntersectionObserver API
47 lines (46 loc) • 1.28 kB
JavaScript
;
Object.defineProperty(exports, '__esModule', { value: true });
function default_1(
element,
resource,
{ setSourcesOnlyOnLoad },
loadActions,
errorActions
) {
if (setSourcesOnlyOnLoad) {
const iframe = document.createElement('iframe');
iframe.addEventListener('error', (event) => errorActions(event, resource));
iframe.addEventListener('load', (event) => {
if (element instanceof HTMLIFrameElement) {
element.src = resource;
element.removeAttribute('srcdoc');
} else {
element.appendChild(iframe);
}
loadActions(event, resource);
});
iframe.src = resource;
} else {
if (element instanceof HTMLIFrameElement) {
element.addEventListener('error', (event) => errorActions(event, resource));
element.addEventListener('load', (event) => loadActions(event, resource), {
once: true
});
element.src = resource;
element.removeAttribute('srcdoc');
} else {
const iframe = document.createElement('iframe');
iframe.addEventListener('error', (event) => errorActions(event, resource));
iframe.addEventListener(
'load',
(event) => {
element.appendChild(iframe);
loadActions(event, resource);
},
{ once: true }
);
iframe.src = resource;
}
}
}
exports.default = default_1;