欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

JS實現(xiàn)動態(tài)加載樣式和腳本

 更新時間:2023年09月12日 08:19:37   作者:編程三昧  
在前端開發(fā)的過程中,不可避免的需要根據(jù)前置條件動態(tài)加載樣式和腳本文件,本文小編就來簡單為大家介紹一下實現(xiàn)一下動態(tài)加載樣式和腳本文件的方法吧

在前端開發(fā)的過程中,不可避免的需要根據(jù)前置條件動態(tài)加載樣式和腳本文件,今天我們來簡單的實現(xiàn)一下動態(tài)加載樣式和腳本文件的方法。

動態(tài)加載樣式文件

使用以下腳本可實現(xiàn)頁面CSS文件的動態(tài)加載。

function loadStyle(url) {
  try {
    document.createStyleSheet(url);
  } catch (e) {
    var cssLink = document.createElement("link");
    cssLink.rel = "stylesheet";
    cssLink.type = "text/css";
    cssLink.href = url;
    var head = document.getElementsByTagName("head")[0];
    head.appendChild(cssLink);
  }
}

動態(tài)加載腳本文件

function appendscript(src, text, reload, charset) {
  var id = hash(src + text);
  if (!reload && in_array(id, evalscripts)) return;
  if (reload && $(id)) {
    $(id).parentNode.removeChild($(id));
  }
  evalscripts.push(id);
  var scriptNode = document.createElement("script");
  scriptNode.type = "text/javascript";
  scriptNode.id = id;
  scriptNode.charset = charset
    ? charset
    : BROWSER.firefox
    ? document.characterSet
    : document.charset;
  try {
    if (src) {
      scriptNode.src = src;
      scriptNode.onloadDone = false;
      scriptNode.onload = function() {
        scriptNode.onloadDone = true;
        JSLOADED[src] = 1;
      };
      scriptNode.onreadystatechange = function() {
        if (
          (scriptNode.readyState == "loaded" ||
            scriptNode.readyState == "complete") &&
          !scriptNode.onloadDone
        ) {
          scriptNode.onloadDone = true;
          JSLOADED[src] = 1;
        }
      };
    } else if (text) {
      scriptNode.text = text;
    }
    document.getElementsByTagName("head")[0].appendChild(scriptNode);
  } catch (e) {}
}
function appendscript(src, text, reload, charset) {
  var id = hash(src + text);
  if (!reload && in_array(id, evalscripts)) return;
  if (reload && $(id)) {
    $(id).parentNode.removeChild($(id));
  }
  evalscripts.push(id);
  var scriptNode = document.createElement("script");
  scriptNode.type = "text/javascript";
  scriptNode.id = id;
  scriptNode.charset = charset
    ? charset
    : BROWSER.firefox
    ? document.characterSet
    : document.charset;
  try {
    if (src) {
      scriptNode.src = src;
      scriptNode.onloadDone = false;
      scriptNode.onload = function() {
        scriptNode.onloadDone = true;
        JSLOADED[src] = 1;
      };
      scriptNode.onreadystatechange = function() {
        if (
          (scriptNode.readyState == "loaded" ||
            scriptNode.readyState == "complete") &&
          !scriptNode.onloadDone
        ) {
          scriptNode.onloadDone = true;
          JSLOADED[src] = 1;
        }
      };
    } else if (text) {
      scriptNode.text = text;
    }
    document.getElementsByTagName("head")[0].appendChild(scriptNode);
  } catch (e) {}
}

總結(jié)

可以看到,所謂的動態(tài)加載其實就是通過JS方法創(chuàng)建文件的引用標(biāo)簽,給標(biāo)簽添加上文件路徑后,再使用DOM方法動態(tài)地追加至HTML頁面。

到此這篇關(guān)于JS實現(xiàn)動態(tài)加載樣式和腳本的文章就介紹到這了,更多相關(guān)JS加載樣式內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • javascript 廣告移動特效的實現(xiàn)代碼

    javascript 廣告移動特效的實現(xiàn)代碼

    下面小編就為大家?guī)硪黄猨avascript 廣告移動特效的實現(xiàn)代碼。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2016-06-06
  • 利用Axios實現(xiàn)無感知雙Token刷新的詳細(xì)教程

    利用Axios實現(xiàn)無感知雙Token刷新的詳細(xì)教程

    在現(xiàn)代系統(tǒng)中,Token認(rèn)證已成為保障用戶安全的標(biāo)準(zhǔn)做法,然而,盡管許多系統(tǒng)采用了這種認(rèn)證方式,卻在處理Token刷新方面存在不足,導(dǎo)致用戶體驗不佳,許多系統(tǒng)未能提供一種無縫的、用戶無感知的Token刷新機制,所以本文介紹了教你用Axios實現(xiàn)無感知雙Token刷新
    2024-08-08
  • 與iframe進行跨域交互的解決方案(推薦)

    與iframe進行跨域交互的解決方案(推薦)

    這篇文章主要介紹了與iframe進行跨域交互的解決方案,本文通過實例代碼給大家講解的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2023-03-03
  • 深度解析TypeScript裝飾器

    深度解析TypeScript裝飾器

    TypeScript?是一種強類型的超集?JavaScript,它為開發(fā)者提供了靜態(tài)類型檢查、代碼提示以及更好的可維護性,本文將深入解析?TypeScript?裝飾器,從基礎(chǔ)概念到高級用法,逐步探討其作用、原理以及實際應(yīng)用場景,以幫助你更好地理解和利用這一功能,需要的朋友可以參考下
    2023-09-09
  • 深入探究JavaScript中for循環(huán)的效率問題及相關(guān)優(yōu)化

    深入探究JavaScript中for循環(huán)的效率問題及相關(guān)優(yōu)化

    這篇文章主要介紹了JavaScript中for循環(huán)的效率問題及相關(guān)優(yōu)化,文中談到了Underscore.js庫及循環(huán)在各個瀏覽器js解釋器下的表現(xiàn),需要的朋友可以參考下
    2016-03-03
  • Bootstrap實現(xiàn)水平排列的表單

    Bootstrap實現(xiàn)水平排列的表單

    這篇文章主要為大家詳細(xì)介紹了Bootstrap實現(xiàn)水平排列的表單的相關(guān)代碼,代碼簡潔,感興趣的小伙伴們可以參考一下
    2016-07-07
  • 解決AJAX中跨域訪問出現(xiàn)''沒有權(quán)限''的錯誤

    解決AJAX中跨域訪問出現(xiàn)''沒有權(quán)限''的錯誤

    很多人在使用AJAX調(diào)用別人站點內(nèi)容的時候,JS會提示"沒有權(quán)限"錯誤,這是XMLHTTP組件的限制-安全起見
    2008-08-08
  • javascript操作數(shù)組詳解

    javascript操作數(shù)組詳解

    這篇文章主要詳細(xì)介紹了javascript操作數(shù)組的方法以及示例,需要的朋友可以參考下
    2014-12-12
  • 重構(gòu)Javascript代碼示例(重構(gòu)前后對比)

    重構(gòu)Javascript代碼示例(重構(gòu)前后對比)

    回顧頭來看看那些Javascript腳本,有寫得不太理想,過于復(fù)雜。現(xiàn)抽取出來,重構(gòu)它們,想學(xué)習(xí)javascript重構(gòu)的朋友可以參考下啊,網(wǎng)本文可以幫助你的
    2013-01-01
  • javascript字符串拆分成單個字符相加和不超過10,求最終值

    javascript字符串拆分成單個字符相加和不超過10,求最終值

    javascript字符串拆分成單個字符相加和不超過10,求最終值
    2008-09-09

最新評論