動態加載(異步加載)jquery/MUI類庫 頁面加載完成后加載js類庫


動態加載Mui類庫:

    // ==UserScript==
    // @name
    // @version  1.4.0
    // @author  zzdhidden@gmail.com
    // @namespace https://github.com/zzdhidden
    // @description 異步加載mui類庫
    // @include
    // @require
    // ==/UserScript==
    function withMUI(callback, safe){
        if(typeof(mui) == "undefined") {
            var script = document.createElement("script");
            script.type = "text/javascript";
            script.src = "${resModel.getJsDomain()}/communal/static/js/mui.js";
            if(safe) {
                var cb = document.createElement("script");
                cb.type = "text/javascript";
                cb.textContent = "(" + callback.toString() + ")(mui, window);";
                script.addEventListener('load', function() {
                    document.head.appendChild(cb);
                });
            }
            else {
                var dollar = undefined;
                if(typeof($) != "undefined") dollar = $;
                script.addEventListener('load', function() {
                    $ = dollar;
                    callback(mui, window);
                });
            }
            document.head.appendChild(script);
        } else {
            setTimeout(function() {
                //Firefox supports
                callback(mui, typeof unsafeWindow === "undefined" ? window : unsafeWindow);
            }, 30);
        }
    }
    withMUI(function($, window){
        $(function() {
           //在此就可以執行執行你的代碼了
        })();
    }, true);

  

核心是要script的load事件完成后執行代碼才有效。

 

 

動態加載jquery:

// ==UserScript== 
// @name   12306 Booking Assistant
// @version  1.4.0
// @author  zzdhidden@gmail.com
// @namespace https://github.com/zzdhidden
// @description 12306 訂票助手之(自動登錄,自動查票,自動訂單)
// @include  *://dynamic.12306.cn/otsweb/*
// @require https://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js
// ==/UserScript== 
function withjQuery(callback, safe){
 if(typeof(jQuery) == "undefined") {
  var script = document.createElement("script");
  script.type = "text/javascript";
  script.src = "https://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js";
  if(safe) {
   var cb = document.createElement("script");
   cb.type = "text/javascript";
   cb.textContent = "jQuery.noConflict();(" + callback.toString() + ")(jQuery, window);";
   script.addEventListener('load', function() {
    document.head.appendChild(cb);
   });
  }
  else {
   var dollar = undefined;
   if(typeof($) != "undefined") dollar = $;
   script.addEventListener('load', function() {
    jQuery.noConflict();
    $ = dollar;
    callback(jQuery, window);
   });
  }
  document.head.appendChild(script);
 } else {
  setTimeout(function() {
   //Firefox supports
   callback(jQuery, typeof unsafeWindow === "undefined" ? window : unsafeWindow);
  }, 30);
 }
}
withjQuery(function($, window){
 $(function() { alert("jQuery loaded"); })();
}, true);

  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2024 CODEPRJ.COM