序言
網頁中有很多的第三方插件都是通過直接引入script庫的方式進行加載,由於加載腳本需要時間,如果script還沒有加載完成,便使用庫中的對象就會有錯誤。
解決方案
- 獲取script DOM 對象
- 綁定onload事件異步回調
總體的思路是這樣子
asyncComplete() {
return new Promise((reject, resole) => {
//獲取HTMLCollection
//我這邊已經確定對象第一個就是要加載的js 便取第一個對象
const [twscript,] = document.getElementsByTagName('script');
//ie
if (twscript.readyState) {
twscript.onreadystatechange = () => {
if (twscript.readyState === "complete" || twscript.readyState === 'loaded') {
reject()
}
}
} else {
twscript.onload = reject()
}
})
}
使用方法
//使用方法
async mountd() {
await this.asyncComplete();
//TODO
}