動態加載script 加載完成回調事件

序言

網頁中有很多的第三方插件都是通過直接引入script庫的方式進行加載,由於加載腳本需要時間,如果script還沒有加載完成,便使用庫中的對象就會有錯誤。

解決方案

  1. 獲取script DOM 對象
  2. 綁定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
  }

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章