UNPKG

@wezom/zz-load

Version:

Lazy loader based on IntersectionObserver API

51 lines (50 loc) 1.35 kB
export default function (element, resource, _a, loadActions, errorActions) { var setSourcesOnlyOnLoad = _a.setSourcesOnlyOnLoad; if (setSourcesOnlyOnLoad) { var iframe_1 = document.createElement('iframe'); iframe_1.addEventListener('error', function (event) { return errorActions(event, resource); }); iframe_1.addEventListener('load', function (event) { if (element instanceof HTMLIFrameElement) { element.src = resource; element.removeAttribute('srcdoc'); } else { element.appendChild(iframe_1); } loadActions(event, resource); }); iframe_1.src = resource; } else { if (element instanceof HTMLIFrameElement) { element.addEventListener('error', function (event) { return errorActions(event, resource); }); element.addEventListener( 'load', function (event) { return loadActions(event, resource); }, { once: true } ); element.src = resource; element.removeAttribute('srcdoc'); } else { var iframe_2 = document.createElement('iframe'); iframe_2.addEventListener('error', function (event) { return errorActions(event, resource); }); iframe_2.addEventListener( 'load', function (event) { element.appendChild(iframe_2); loadActions(event, resource); }, { once: true } ); iframe_2.src = resource; } } }