云点博客-关注全栈开发云点博客

关注全栈开发
提升用户体验

动态加载js和css

开发过程中经常需要动态加载js和css,今天特意总结了一下常用的方法。加了一些个人修改进去 , 以前的动态加载JS后不能立即使用 , 加了回调进去

 1、动态加载js

    方法一:动态加载js文件 , 修正不能立即调用方法的BUG

    // 动态加载js脚本文件     function loadScript(url,callback) {         var script = document.createElement("script");         script.type = "text/javascript";         script.src = url;         document.body.appendChild(script);         if (arguments.length == 2) {              script.onload = function () {                  callback();              }         }     }     // 测试     loadScript("javascript/lib/cookie.js",function(){ dosomething... });


    方法二:动态加载js脚本

    // 动态加载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.body.appendChild(script);     }     // 测试     var text = "function test(){alert('test');}";     loadScriptString(text);     test();



2、动态加载css

    方法一:动态加载css文件

    // 动态加载css文件     function loadStyles(url) {         var link = document.createElement("link");         link.type = "text/css";         link.rel = "stylesheet";         link.href = url;         document.getElementsByTagName("head")[0].appendChild(link);     }     // 测试     loadStyles("css/secondindex.css");


    方法二:动态加载css脚本

    // 动态加载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);


原文链接  http://www.cnblogs.com/yuanke/p/5039699.html

赞(0) 打赏