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;}");