UNPKG

superrfjs

Version:

83 lines (78 loc) 2.4 kB
const scripts = [ "rf.sheets.all.js", "rf.shapes.js", "rf.charts.js", "rf.slicers.js", "rf.print.js", "rf.barcode.js", "rf.pdf.js", "rf.pivottables.js", "rf.tablesheet.js", "rf.ganttsheet.js", "rf.formulapanel.js", "rf.reportsheet.js", "rf.io.js", "rf.excelio.js", "rf.cn.js", "rf.zh.js", "rf.designer.all.js", ]; //所有需要加载的css资源 const cssFiles = [ "rf.designer.css", "rf.2013.css", ]; export let initGC = (document) => { return new Promise((resolve, reject) => { let flag = true; let meta = document.getElementsByTagName('meta'); for (let index = 0; index < meta.length; index++) { const element = meta[index]; if (element.name == 'loadEnd') { flag = false; } } if (flag) { // 定义一个异步函数,它接受两个参数:一个资源列表和一个加载器函数 const loadResourcesInOrder = async (resources, loader) => { for (const resource of resources) { // 确保资源按照列表中的顺序依次加载 await loader(resource, document); } }; const loadScript = (script, document) => { return new Promise((resolve, reject) => { const s = document.createElement("script"); s.src = `./${script}`; s.onload = resolve; s.onerror = reject; document.body.appendChild(s); }); }; const loadCSS = (cssFile, document) => { return new Promise((resolve, reject) => { const link = document.createElement("link"); link.rel = "stylesheet"; link.href = `./${cssFile}`; link.onload = resolve; link.onerror = reject; document.head.appendChild(link); }); }; loadResourcesInOrder(cssFiles, loadCSS); //动态引入js loadResourcesInOrder(scripts, loadScript) .then(() => { const meta = document.createElement("meta"); meta.name = 'loadEnd'; document.head.appendChild(meta) resolve("所有js脚本已加载完成"); }) .catch((error) => { reject("加载脚本时出错", error); }); } else { resolve("脚本已加载过!!!"); } }) };