如何实现JavaScript动态加载CSS和JS文件


Posted in Javascript onDecember 28, 2020

项目中需要用到动态加载CSS 文件,整理了一下,顺便融合了动态加载JS 的功能写成了一个对象,先上代码:

var dynamicLoading = {
 css: function(path){
 if(!path || path.length === 0){
 throw new Error('argument "path" is required !');
 }
 var head = document.getElementsByTagName('head')[0];
 var link = document.createElement('link');
 link.href = path;
 link.rel = 'stylesheet';
 link.type = 'text/css';
 head.appendChild(link);
 },
 js: function(path){
 if(!path || path.length === 0){
 throw new Error('argument "path" is required !');
 }
 var head = document.getElementsByTagName('head')[0];
 var script = document.createElement('script');
 script.src = path;
 script.type = 'text/javascript';
 head.appendChild(script);
 }
}

对象包含两个完全独立的方法,分别用来加载CSS 文件和JS 文件,参数均为欲加载的文件路径。原理非常的简单:对于不同的加载文件类型创建不同的节点,然后添加各自的属性,最后扔到head 标签里面。经测试,本方法兼容各浏览器,安全、无毒、环保,是 web 开发人员工作常备代码。

下面是调用代码,异常简单:

//动态加载 CSS 文件
dynamicLoading.css("test.css");

//动态加载 JS 文件
dynamicLoading.js("test.js");

动态加载js和css

开发过程中经常需要动态加载js和css,今天特意总结了一下常用的方法。

1、动态加载js

方法一:动态加载js文件

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

方法二:动态加载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);

以上就是告诉大家如何实现JavaScript动态加载CSS和JS文件,希望对大家的学习有所帮助。

Javascript 相关文章推荐
jQuery 中使用JSON的实现代码
Dec 01 Javascript
通过jQuery源码学习javascript(二)
Dec 27 Javascript
输入自动提示搜索提示功能的javascript:sugggestion.js
Sep 02 Javascript
在浏览器中实现图片粘贴的jQuery插件-- pasteimg使用指南
Dec 29 Javascript
异步JavaScript编程中的Promise使用方法
Jul 28 Javascript
javascript中JSON.parse()与eval()解析json的区别
May 19 Javascript
概述jQuery的元素筛选
Nov 23 Javascript
mac中利用NVM管理不同node版本的方法详解
Nov 08 Javascript
每天学点Vue源码之vm.$mount挂载函数
Mar 11 Javascript
JS随机密码生成算法
Sep 23 Javascript
基于vue+element实现全局loading过程详解
Jul 10 Javascript
JavaScript获取时区实现过程解析
Sep 24 Javascript
基于javascript实现漂亮的页面过渡动画效果附源码下载
Oct 26 #Javascript
JS实现的页面自定义滚动条效果
Oct 26 #Javascript
JS实现的鼠标跟随代码(卡通手型点击效果)
Oct 26 #Javascript
JS响应鼠标点击实现两个滑块区间拖动效果
Oct 26 #Javascript
javaScript实现可缩放的显示区效果代码
Oct 26 #Javascript
JS基于VML技术实现的五角星礼花效果代码
Oct 26 #Javascript
jquery获取url参数及url加参数的方法
Oct 26 #Javascript
You might like
PHP5/ZendEngine2的改进
2006/10/09 PHP
珊瑚虫IP库浅析
2007/02/15 PHP
php实现简单文件下载的方法
2015/01/30 PHP
php插入含有特殊符号数据的处理方法
2016/11/24 PHP
用ADODB.Stream转换
2007/01/22 Javascript
javascript开发技术大全-第1章javascript概述
2011/07/03 Javascript
Javascript实现视频轮播在pc端与移动端均可
2013/09/29 Javascript
js实现瀑布流的一种简单方法实例分享
2013/11/04 Javascript
javascript实现简单的鼠标拖动效果实例
2015/04/10 Javascript
JS跨域交互(jQuery+php)之jsonp使用心得
2016/07/01 Javascript
总结javascript中的六种迭代器
2016/08/16 Javascript
JS获取鼠标位置距浏览器窗口距离的方法示例
2017/04/11 Javascript
20行JS代码实现网页刮刮乐效果
2017/06/23 Javascript
AngularJS实现tab选项卡的方法详解
2017/07/05 Javascript
jQuery UI实现动画效果代码分享
2018/08/19 jQuery
NodeJS 实现多语言的示例代码
2018/09/11 NodeJs
Vue中fragment.js使用方法小结
2020/02/17 Javascript
koa2 数据api中间件设计模型的实现方法
2020/07/13 Javascript
Element Badge标记的使用方法
2020/07/27 Javascript
vue 解决兄弟组件、跨组件深层次的通信操作
2020/07/27 Javascript
微信小程序实现加入购物车滑动轨迹
2020/11/18 Javascript
Python中的异常处理学习笔记
2015/01/28 Python
python采集百度百科的方法
2015/06/05 Python
简单解决Python文件中文编码问题
2015/11/22 Python
python pptx复制指定页的ppt教程
2020/02/14 Python
Python设计密码强度校验程序
2020/07/30 Python
Python实现随机爬山算法
2021/01/29 Python
新加坡航空官方网站:Singapore Airlines
2016/10/13 全球购物
悬挂训练绳:TRX
2017/12/14 全球购物
经典导游欢迎词大全
2014/01/16 职场文书
音乐专业自荐信
2014/02/07 职场文书
励志演讲稿大全
2014/08/21 职场文书
2014年九一八事变演讲稿
2014/09/14 职场文书
银行奉献演讲稿
2014/09/16 职场文书
golang中的struct操作
2021/11/11 Golang
Python中的程序流程控制语句
2022/02/24 Python