UNPKG

@studiometa/js-toolkit

Version:

A set of useful little bits of JavaScript to boost your project! 🚀

34 lines (33 loc) • 1 kB
function loadElement(src, type, { appendTo = null } = {}) { return new Promise((resolve, reject) => { const eventOptions = { once: true }; const prop = type === "link" ? "href" : "src"; const element = document.createElement(type); element.addEventListener("load", (event) => resolve({ event, element }), eventOptions); element.addEventListener("error", (event) => reject({ event, element }), eventOptions); element[prop] = src; if (appendTo) { appendTo.append(element); } }); } function loadImage(src, options) { return loadElement(src, "img", options); } function loadIframe(src, options) { return loadElement(src, "iframe", options); } function loadLink(src, options) { return loadElement(src, "link", options); } function loadScript(src, options) { return loadElement(src, "script", { appendTo: document.head, ...options }); } export { loadElement, loadIframe, loadImage, loadLink, loadScript }; //# sourceMappingURL=loadElement.js.map