UNPKG

@wezom/zz-load

Version:

Lazy loader based on IntersectionObserver API

47 lines (46 loc) 1.28 kB
'use strict'; 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;