//#region ====================== 加载script ======================
|
function loadScript(src, callback) {
|
const script = document.createElement('script');
|
script.setAttribute('type', 'text/javascript');
|
script.setAttribute('src', src);
|
script.async = true;
|
script.onload = () => callback();
|
script.onerror = () => callback(new Error(`Failed to load ${src}`));
|
document.head.appendChild(script);
|
}
|
|
//#endregion
|
|
//#region ====================== 加载样式 ======================
|
function loadStyles(styles) {
|
for (const path of styles) {
|
const style = document.createElement('link');
|
style.setAttribute('rel', 'stylesheet');
|
style.setAttribute('type', 'text/css');
|
style.setAttribute('href', path);
|
// 设置 print 可以避免阻塞页面渲染
|
style.setAttribute('media', 'print');
|
style.onload = () => {
|
style.setAttribute('media', 'all');
|
};
|
document.head.appendChild(style);
|
}
|
}
|
window.eventList = {};
|
|
export const loadAmisSource = (delayTime = 0) => {
|
setTimeout(() => {
|
window.eventList.amisSdkJsPromise = new Promise((resolve, reject) => {
|
loadScript('/static/amis/sdk/sdk.js', (error) => {
|
if (error) {
|
reject(error);
|
return;
|
}
|
resolve();
|
});
|
});
|
loadStyles(['/static/amis/sdk/sdk.css', '/static/amis/sdk/helper.css', '/static/amis/sdk/iconfont.css']);
|
}, delayTime * 1000);
|
};
|