【发布时间】:2020-04-07 19:40:24
【问题描述】:
我从外部 javascript 文件中获取应用程序的页眉和页脚。然后我需要将其转换为 HTML 并将其附加到 HTML 的头部。
private loadScript() {
const dynamicScripts = [this.appConfig.config.scriptDetails.headerUrl];
for (const ds of dynamicScripts) {
const node = document.createElement('script');
node.src = ds;
node.type = 'text/javascript';
node.async = false;
document.getElementsByTagName('head')[0].appendChild(node);
}
this.setUIInterval = setInterval(() => {
if (UniversalHeader) {
const uhi = new UniversalHeader(this.uhConfig);
const headerElements = document.getElementById('universalHeader').getElementsByTagName('a');
this.newWindow(headerElements);
this.clearUIInterval();
}
}, 100);
}
我在 onInit() 中调用 loadScript()。在这里,我使用 setInterval 来检查脚本是否已加载,然后将其附加到标题中。这里的问题是 setInterval 在脚本加载之前至少触发了 2 次。所以,我发现使用它不是一个好主意。有没有其他方法可以在没有 setInterval 的情况下实现相同的效果?请建议。谢谢。
【问题讨论】:
标签: javascript angular