var fnz = (function () { return { getEl: function (id) { return document.getElementById(id); }, scrollIntoViewById: function (id) { fnz.getEl(id).scrollIntoView(true); }, downloadFile: function (filename, contentType, content) { // Create the URL const file = new File([content], filename, { type: contentType }); const exportUrl = URL.createObjectURL(file); // Create the element and click on it const a = document.createElement("a"); document.body.appendChild(a); a.href = exportUrl; a.download = filename; a.target = "_self"; a.click(); // We don't need to keep the object URL, let's release the memory // On older versions of Safari, it seems you need to comment this line... URL.revokeObjectURL(exportUrl); a.remove(); } } })();