国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

js實用方法記錄-js動態加載css、js腳本文件

Dogee / 2493人閱讀

摘要:測試動態加載到標簽并執行回調方法調用加載成功動態加載腳本地址回調函數加載樣式站中下載打開方法測試頁面跳轉到微信中不能打開其他安卓手機嘗試調用未指定需要打開的可參考自定義協議參數轉換參考參數轉對象使用對象轉參數

js實用方法記錄-動態加載css/js

1.動態加載js文件到head標簽并執行回調
方法調用:dynamicLoadJs("http://www.yimo.link/static/j...",function(){alert("加載成功")});

    /**
     * 動態加載JS
     * @param {string} url 腳本地址
     * @param {function} callback  回調函數
     */
    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.動態加載css文件到head標簽并執行回調
方法調用: dynamicLoadCss("http://www.yimo.link/static/c...",function(){alert("加載成功")})

    /**
     * 動態加載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.動態加載腳本文件
參考:http://www.cnblogs.com/yuanke...

     /**
     * 動態加載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);
    
    
    
    /**
     * 動態加載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.動態加載iframe到body標簽并執行回調
方法調用:dynamicLoadIframe("http://www.yimo.link",function(){alert("加載成功")},"");

   /**
   * 動態加載Iframe
   * @param {string} url 腳本地址
   * @param {function} callback  回調函數
   * @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跳轉到store
          window.location.href = iosDownUrl;
          return;
        } 
        if(ua.indexOf("micromessenger") > -1){//微信中不能打開其他app
          window.location.href = andDownUrl;
          return;
        }
        if (/android/.test(ua)) {//安卓手機嘗試調用app
          if(!appUrl){
            console.log("未指定需要打開的App,可參考http://www.oschina.net/code/snippet_256033_35330/");
            return;
          }
          var su = appUrl;//"metools://index";//自定義協議
          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;
      }

6.query參數轉換
參考:https://github.com/nicejade/a...
query參數轉對象

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
}

7.使用:query("?v=1")
對象轉query參數

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
}

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/53254.html

相關文章

  • js實用方法記錄-js動態加載cssjs腳本文件

    摘要:測試動態加載到標簽并執行回調方法調用加載成功動態加載腳本地址回調函數加載樣式站中下載打開方法測試頁面跳轉到微信中不能打開其他安卓手機嘗試調用未指定需要打開的可參考自定義協議參數轉換參考參數轉對象使用對象轉參數 js實用方法記錄-動態加載css/js 1.動態加載js文件到head標簽并執行回調方法調用:dynamicLoadJs(http://www.yimo.link/static/...

    shusen 評論0 收藏0
  • js實用方法記錄-js動態加載cssjs腳本文件

    摘要:測試動態加載到標簽并執行回調方法調用加載成功動態加載腳本地址回調函數加載樣式站中下載打開方法測試頁面跳轉到微信中不能打開其他安卓手機嘗試調用未指定需要打開的可參考自定義協議參數轉換參考參數轉對象使用對象轉參數 js實用方法記錄-動態加載css/js 1.動態加載js文件到head標簽并執行回調方法調用:dynamicLoadJs(http://www.yimo.link/static/...

    sanyang 評論0 收藏0
  • javascript功能插件大集合 前端常用插件 js常用插件

    摘要:轉載來源包管理器管理著庫,并提供讀取和打包它們的工具。能構建更好應用的客戶端包管理器。一個整合和的最佳思想,使開發者能快速方便地組織和編寫前端代碼的下一代包管理器。很棒的組件集合。隱秘地使用和用戶數據。 轉載來源:https://github.com/jobbole/aw... 包管理器管理著 javascript 庫,并提供讀取和打包它們的工具。?npm – npm 是 javasc...

    netmou 評論0 收藏0
  • javascript功能插件大集合 前端常用插件 js常用插件

    摘要:轉載來源包管理器管理著庫,并提供讀取和打包它們的工具。能構建更好應用的客戶端包管理器。一個整合和的最佳思想,使開發者能快速方便地組織和編寫前端代碼的下一代包管理器。很棒的組件集合。隱秘地使用和用戶數據。 轉載來源:https://github.com/jobbole/aw... 包管理器管理著 javascript 庫,并提供讀取和打包它們的工具。?npm – npm 是 javasc...

    Hydrogen 評論0 收藏0

發表評論

0條評論

Dogee

|高級講師

TA的文章

閱讀更多
最新活動
閱讀需要支付1元查看
<