视频1 视频21 视频41 视频61 视频文章1 视频文章21 视频文章41 视频文章61 推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37 推荐39 推荐41 推荐43 推荐45 推荐47 推荐49 关键词1 关键词101 关键词201 关键词301 关键词401 关键词501 关键词601 关键词701 关键词801 关键词901 关键词1001 关键词1101 关键词1201 关键词1301 关键词1401 关键词1501 关键词1601 关键词1701 关键词1801 关键词1901 视频扩展1 视频扩展6 视频扩展11 视频扩展16 文章1 文章201 文章401 文章601 文章801 文章1001 资讯1 资讯501 资讯1001 资讯1501 标签1 标签501 标签1001 关键词1 关键词501 关键词1001 关键词1501 专题2001
原生JS如何动态加载JS和CSS文件以及代码脚本
2020-11-27 19:33:19 责编:小采
文档


这篇文章给大家介绍的内容是关于原生JS如何动态加载JS和CSS文件以及代码脚本,有着一定的参考价值,有需要的朋友可以参考一下。

DOM readyState属性共5中状态

  1. uninitialized:初始状态

  2. loading:document加载中

  3. loaded: document加载完成

  4. interactive:已加载并可与用户交互,但还需要加载图片等其他资源

  5. complete:全部资源加载完成

DOM文档加载顺序:

  1. 解析HTML结构

  2. 加载外部脚本和样式表文件(loading)

  3. 解析并执行脚本

  4. DOM树构建完成(readyState:interactive)

  5. 加载外部资源文件(图片等)

  6. 页面加载完成(readyState:complete)

动态加载公共方法

var DynamciLoadUtil = {
 // 动态加载外部js文件,并执行回调
 loadJS: function(url, callback){
 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;
 }
 }
 }
 document.body.appendChild(script);
 //document.getElementsByTagName('body')[0].appendChild(script);
 },
 // 行内方式动态加载js代码
 loadJSText: function(jsText){
 var script = document.createElement('script');
 script.type = 'text/javascript';
 try {
 // Firefox,Safari,Chrome,Opera支持
 script.appendChild(document.createTextNode(jsText));
 } catch(ex){
 // IE早期的浏览器,需要使用script的text属性来指定js代码
 script.text = jsText;
 }
 document.body.appendChild(script);
 },
 // 动态加载外部CSS文件
 loadCSS:function(url){
 var link = document.createElement('link');
 link.rel = 'stylesheet';
 link.type = 'text/css';
 link.url = url;
 document.getElementsByTagName('head')[0].appendChild(link);
 },
 // 使用<style>标签包含嵌入式CSS
 loadCSSText: function(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;
 }
 }
}

下载本文
显示全文
专题