JavaScript高級プログラム設計のダイナミックスクリプトとダイナミックスタイル

4308 ワード

1、ダイナミックローディングシナリオ(src原理、非同期、クロスドメイン対応)
var loadScript = function (url, callback) {

    var script = document.createElement("script");

    script.src = url;



    document.getElementsByTagName("head")[0].appendChild(script);



    if (script.addEventListener) {



        // for w3c

        script.onload = function () {

            script.onload = null;

            script.parentNode.removeChild(script);



            callback && callback();

        };

    } else if (script.readyState) {

    

        // for ie

        script.onreadystatechange = function () {



            if (script.readyState === "loaded" || script.readyState === "complete") {



                script.onreadystatechange = null;

                script.parentNode.removeChild(script);



                callback && callback();

            }

        };

    } else {



        // for lower brower

        script.parentNode.removeChild(script);

        callback && callback();

    }

};
2、スタイルを動的に読み込む
var loadStyle = function (cssText) {

    var style = document.createElement("style");

    style.type = "text/css";

    style.rel = "styleSheet";



    try {

        style.appendChild(document.createTextNode(cssText));

    } catch (ex) {

        // for ie

        style.styleSheet.cssText = cssText;

    }



    document.getElementsByTagName("head")[0].appendChild(style);

};



loadStyle("body{background-color:#aaa;}");