91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

js中怎么動態獲取頁面的script地址

發布時間:2022-02-08 09:34:48 來源:億速云 閱讀:208 作者:iii 欄目:開發技術

本篇內容主要講解“js中怎么動態獲取頁面的script地址”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“js中怎么動態獲取頁面的script地址”吧!

前言:(業務邏輯)

在 vue 中,遇到這樣的情況,初始化加載太多js,導致頁面白屏,為了解決這個情況,決定使用具體組件具體加載相應的 cdn地址。
為啥不用 vue 的按需加載呢,是因為我們項目對性能要求很高,但是按需加載后,引入的插件包,打包以后的大小比 cdn 要大太多了,整體來說是使用他是得不償失,但是一次性加載太多 cdn 又會導致白屏,所以在這里我使用的方法:具體某個頁面使用第三方插件,就在使用的頁面 js 動態加載 scirpt,并給他上標簽

具體操作:

1、面臨第一個問題,要先獲取到當前頁面所用到的所有引入 的  <script>,下面的 newArr 就是拿到的所有的script地址

 let scriptsArr = document.getElementsByTagName('script')
      let newArr = []
      //獲取所有的script地址
      for (var i = 0; i < scriptsArr.length; i++) {
        newArr.push(scriptsArr[i].getAttribute('src', 4))
      }

2、給界面加載我們想放進去的 cdn 地址,因為 vue 是單頁面組件,所有我們直接放在 #app上
// 創建script標簽,引入外部文件
        let script = document.createElement('script')
        script.type = 'text/javascript'
        script.src = url
        document.getElementById('app').appendChild(script)

分享源碼:

mounted 中調用:(必須是 mounted,不能是 created,必須等頁面加載完成才能掛載)

let url = '//cktcdn.kaoti100.com/cdn.jsdelivr.net/npm/vue-aplayer/vue-aplayer.js'
    this.app_script(url)//初始化給他添加cdn地址

methods 里面定義方法
/**
     * 獲取頁面上的所有script地址。來判斷是否要加cdn地址
     * */
    app_script(url) {
      let scriptsArr = document.getElementsByTagName('script')
      let newArr = []
      //獲取所有的script地址
      for (var i = 0; i < scriptsArr.length; i++) {
        newArr.push(scriptsArr[i].getAttribute('src', 4))
      }
      let isFirst = true //判斷是否加載過這個script,有就不加載了
      let cdnUrl = url
      newArr.forEach(item => {
        if (item === cdnUrl) {
          isFirst = false
        }
      })
      if (isFirst) {
        // 創建script標簽,引入外部文件
        let script = document.createElement('script')
        script.type = 'text/javascript'
        script.src = url
        document.getElementById('app').appendChild(script)
      }
 
    },

到此,相信大家對“js中怎么動態獲取頁面的script地址”有了更深的了解,不妨來實際操作一番吧!這里是億速云網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

民县| 原平市| 灵川县| 垣曲县| 泽州县| 和硕县| 历史| 封开县| 泌阳县| 固阳县| 霍州市| 且末县| 宿州市| 张掖市| 淮滨县| 高清| 大石桥市| 防城港市| 乌兰察布市| 乐山市| 舟曲县| 盘锦市| 嫩江县| 绥中县| 清原| 陇西县| 邹城市| 古浪县| 揭阳市| 西和县| 北宁市| 崇仁县| 香河县| 宜昌市| 安溪县| 麻栗坡县| 信宜市| 莫力| 民丰县| 宜都市| 荔浦县|