国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

js實用方法記錄-js動態(tài)加載css、js腳本文件

這篇具有很好參考價值的文章主要介紹了js實用方法記錄-js動態(tài)加載css、js腳本文件。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

js實用方法記錄-動態(tài)加載css/js

附送一個加載iframe,h5打開app代碼

1. 動態(tài)加載js文件到head標(biāo)簽并執(zhí)行回調(diào)

方法調(diào)用:dynamicLoadJs('http://www.yimo.link/static/js/main.min.js',function(){alert('加載成功')});

    /**
     * 動態(tài)加載JS
     * @param {string} url 腳本地址
     * @param {function} callback  回調(diào)函數(shù)
     */
    function dynamicLoadJs(url, callback) {
        var head = document.getElementsByTagName('head')[0];
        var script = document.createElement('script');
        script.type = 'text/javascript';
        script.src = url;
        if(typeof(callback)=='function'){
            script.onload = script.onreadystatechange = function () {
                if (!this.readyState || this.readyState === "loaded" || this.readyState === "complete"){
                    callback();
                    script.onload = script.onreadystatechange = null;
                }
            };
        }
        head.appendChild(script);
    }

2. 動態(tài)加載css文件到head

方法調(diào)用:?dynamicLoadCss('http://www.yimo.link/static/css/style.css')

  /**
     * 動態(tài)加載CSS
     * @param {string} url 樣式地址
     */
    function dynamicLoadCss(url) {
        var head = document.getElementsByTagName('head')[0];
        var link = document.createElement('link');
        link.type='text/css';
        link.rel = 'stylesheet';
        link.href = url;
        head.appendChild(link);
    }

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

參考:動態(tài)加載js和css - 猿客 - 博客園


    /**
     * 動態(tài)加載css腳本
     * @param {string} cssText css樣式
     */
    function loadStyleString(cssText) {
        var style = document.createElement("style");
        style.type = "text/css";
        try{
            // firefox、safari、chrome和Opera
            style.appendChild(document.createTextNode(cssText));
        }catch(ex) {
            // IE早期的瀏覽器 ,需要使用style元素的stylesheet屬性的cssText屬性
            style.styleSheet.cssText = cssText;
        }
        document.getElementsByTagName("head")[0].appendChild(style);
    }
    // 測試
    var css = "body{color:blue;}";
    loadStyleString(css);
   /**
     * 動態(tài)加載js腳本
     * @param {string} code js腳本
     */
    function loadScriptString(code) {
        var script = document.createElement("script");
        script.type = "text/javascript";
        try{
            // firefox、safari、chrome和Opera
            script.appendChild(document.createTextNode(code));
        }catch(ex) {
            // IE早期的瀏覽器 ,需要使用script的text屬性來指定javascript代碼。
            script.text = code;
        }
        document.getElementsByTagName("head")[0].appendChild(script);
    }
    // 測試
    var text = "function test(){alert('test');}";
    loadScriptString(text);
    test();

4. 動態(tài)加載iframe到body標(biāo)簽并執(zhí)行回調(diào)

方法調(diào)用:dynamicLoadIframe('http://www.yimo.link',function(){alert('加載成功')},'');

  /**
   * 動態(tài)加載Iframe
   * @param {string} url 腳本地址
   * @param {function} callback  回調(diào)函數(shù)
   * @param {string} style  加載樣式
   */
  function dynamicLoadIframe(url,callback,style) {
    var body = document.getElementsByTagName('body')[0];
    var iframe = document.createElement('iframe');
    iframe.src = url;
    iframe.style=style||'display:none;width:0px;height:0px;';
    if(typeof(callback)=='function'){
        iframe.onload = iframe.onreadystatechange = function () {
            if (!this.readyState || this.readyState === "loaded" || this.readyState === "complete") {
                callback();
                iframe.onload = iframe.onreadystatechange = null;
            }
        };
    }
    body.appendChild(iframe);
  }

5. M站中下載/打開app

方法測試:openApp('ios頁面','**.apk','metools://home');

function openApp(iosDownUrl,andDownUrl,appUrl) {
    var ua = navigator.userAgent.toLowerCase();
    if (/iphone|ipad|ipod/.test(ua)) {//ios跳轉(zhuǎn)到store
      window.location.href = iosDownUrl;
      return;
    }
    if(ua.indexOf("micromessenger") > -1){//微信中不能打開其他app
      window.location.href = andDownUrl;
      return;
    }
    if (/android/.test(ua)) {//安卓手機(jī)嘗試調(diào)用app
      if(!appUrl){
        console.log('未指定需要打開的App,可參考http://www.oschina.net/code/snippet_256033_35330/');
        return;
      }
      var su = appUrl;//"metools://index";//自定義協(xié)議
      var n = setTimeout(function () {
        window.location.href = andDownUrl
      }, 500);
      var r = document.createElement("iframe");
      r.src = su;
      r.onload = function () {
        console.log('iframe load')
        clearTimeout(n);
        r.parentNode.removeChild(r);
        window.location.href = su;
      };
      r.setAttribute("style", "display:none;");
      document.body.appendChild(r);
      return;
    }
    window.location.href = andDownUrl;
  }

query參數(shù)轉(zhuǎn)換

參考:https://github.com/nicejade/awesome-vue-cli3-example/blob/master/src/helper/utils.js#L36

query參數(shù)轉(zhuǎn)對象

export function query(search) {
  let str = search || window.location.search
  let objURL = {}
  str.replace(new RegExp('([^?=&]+)(=([^&]*))?', 'g'), ($0, $1, $2, $3) => {
    objURL[$1] = $3
  })
  return objURL
}

使用:query('?v=1')

對象轉(zhuǎn)query參數(shù)

function queryString(url, query) {
  let str = []
  for (let key in query) {
    str.push(key + '=' + query[key])
  }
  let paramStr = str.join('&')
  return paramStr ? `${url}?${paramStr}` : url
}

使用:?queryString('http://192.168.1.32:3638/checkout',{abc:123})文章來源地址http://www.zghlxwxcb.cn/news/detail-545213.html

到了這里,關(guān)于js實用方法記錄-js動態(tài)加載css、js腳本文件的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進(jìn)行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • JavaScript 腳本延遲加載方式

    1. defer屬性 用來通知瀏覽器該腳本將在文檔完成解析后,觸發(fā)?DOMContentLoaded?事件前執(zhí)行。 有? defer ?屬性的腳本會阻止? DOMContentLoaded ?事件,直到腳本被加載并且解析完成。 defer 屬性必須配合 src 屬性使用 defer 屬性對于模塊腳本沒有作用 2. async 屬性 對于普通腳本,如果存

    2024年02月05日
    瀏覽(20)
  • 解決js腳本加載失敗的問題

    解決js腳本加載失敗的問題

    當(dāng)我們在運行某一個項目時,它的某些JavaScript腳本可能加載不出來,報錯。?像現(xiàn)在單頁界面應(yīng)用基本上都是通過js來構(gòu)建,一旦加載不出,這個項目就不能運行了,那怎么辦?我們?nèi)绾谓鉀Q這個問題? 這里采用的方案是,重新加載JavaScript腳本。那么什么時候去重新加載js,

    2024年02月09日
    瀏覽(25)
  • 【CSS加載動畫特效】28種純CSS實現(xiàn)的加載loading動態(tài)特效(附源碼)

    【CSS加載動畫特效】28種純CSS實現(xiàn)的加載loading動態(tài)特效(附源碼)

    今天其實還是有點期待6月份城市賽道的成績公布,但是可能因為出現(xiàn)城市太多等問題,官方也還在快馬加鞭的統(tǒng)計中,我也趁機(jī)再發(fā)一篇前端的文章了,其實在很多系統(tǒng)里面我們都看到過各種各樣的加載中樣式,但是總有些顯得平平無奇,今天我就統(tǒng)計了28種load加載動畫特效

    2024年02月15日
    瀏覽(26)
  • 博客無限滾動加載(html、css、js)實現(xiàn)

    博客無限滾動加載(html、css、js)實現(xiàn)

    這是一個簡單實現(xiàn)了類似博客瀑布流加載功能的頁面,使用html、css、js實現(xiàn)。簡單易懂,值得學(xué)習(xí)借鑒。?? 演示地址:https://i_dog.gitee.io/easy-web-projects/infinite_scroll_blog/index.html index.html style.css script.js 該項目從github中的vanillawebprojects倉庫收集。 原始代碼: 原始代碼地址 https

    2024年02月07日
    瀏覽(20)
  • 【前端靈魂腳本語言JavaScript⑤】——JS中數(shù)組的使用

    【前端靈魂腳本語言JavaScript⑤】——JS中數(shù)組的使用

    ?? 作者: 阿偉 ?? 個人主頁: Flyme awei ?? 希望大家多多支持??一起進(jìn)步呀! ?? 文章對你有幫助??關(guān)注?點贊??收藏?? 第一種: var 數(shù)組名 = new Array(); 創(chuàng)建一個空數(shù)組 第二種: var arr2 = new Array(10); 創(chuàng)建一個定長為10的數(shù)組 第三種 var arr3 = new Array(a,b,c); 創(chuàng)建時直接指定元素值

    2023年04月08日
    瀏覽(111)
  • 安卓手機(jī)怎么運行js腳本,手機(jī)的javascript怎么開

    安卓手機(jī)怎么運行js腳本,手機(jī)的javascript怎么開

    大家好,小編為大家解答手機(jī)怎么啟用javascript功能的問題。很多人還不知道安卓手機(jī)怎么運行js腳本,現(xiàn)在讓我們一起來看看吧! ? ? ? ? 最近在研究c++與JavaScript的交互,有朋友問我安卓怎樣與JavaScript交互,今天找到一個之前寫的小demo,實現(xiàn)的是安卓webview里面的JavaScript和

    2024年01月23日
    瀏覽(22)
  • Linux:服務(wù)器間同步文件的腳本(實用)

    Linux:服務(wù)器間同步文件的腳本(實用)

    比如有三臺服務(wù)器, hadoop102、hadoop103、hadoop104 ,且都有 atguigu 賬號 循環(huán)復(fù)制文件到所有節(jié)點的相同目錄下,且腳本可以在任何路徑下使用 1、查看環(huán)境變量 2、進(jìn)入 /home/atguigu/bin 目錄 在該目錄下創(chuàng)建腳本,則該腳本可以在任何路徑下使用,因為,這個路徑添加在環(huán)境變量中

    2024年04月28日
    瀏覽(23)
  • 前端項目部署自動檢測更新后通知用戶刷新頁面(前端實現(xiàn),技術(shù)框架vue、js、webpack)——方案一:編譯項目時動態(tài)生成一個記錄版本號的文件

    前端項目部署自動檢測更新后通知用戶刷新頁面(前端實現(xiàn),技術(shù)框架vue、js、webpack)——方案一:編譯項目時動態(tài)生成一個記錄版本號的文件

    當(dāng)我們重新部署前端項目的時候,如果用戶一直停留在頁面上并未刷新使用,會存在功能使用差異性的問題,因此,當(dāng)前端部署項目后,需要提醒用戶有去重新加載頁面。 vue、js、webpack 編譯項目時動態(tài)生成一個記錄版本號的文件 輪詢(20s、自己設(shè)定時間)這個文件,判斷版

    2024年02月02日
    瀏覽(57)
  • html、css 和 JS(JavaScript) 的相互關(guān)聯(lián)

    工作所需,需要承擔(dān)一些字體矢量動效玩法實現(xiàn);調(diào)研發(fā)現(xiàn)前端可以快速實現(xiàn)一些矢量動畫效果; 本文旨在介紹前端的三大利器(HTML / CSS / JS)的區(qū)別和聯(lián)系,就當(dāng)個引子 HTML CSS JS 介紹 HTML是超文本標(biāo)記語言的簡稱,它是一種不嚴(yán)謹(jǐn)?shù)摹⒑唵蔚臉?biāo)識性語言。它用各種標(biāo)簽將頁

    2024年02月10日
    瀏覽(93)
  • HTML+CSS+JS 學(xué)習(xí)筆記(三)———Javascript(中)

    HTML+CSS+JS 學(xué)習(xí)筆記(三)———Javascript(中)

    ??博客主頁:大寄一場. ??系列專欄:前端 ??往期回顧:HTML+CSS+JS 學(xué)習(xí)筆記(三)———Javascript(上) ??博客制作不易歡迎各位??點贊+?收藏+?關(guān)注 目錄 ?JavaScript中的函數(shù) 函數(shù)的定義和調(diào)用 函數(shù)的定義 ?函數(shù)的調(diào)用 嵌套函數(shù) ?遞歸函數(shù) ?變量的作用域 全局變量和局部

    2024年02月06日
    瀏覽(27)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包