如何实现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 相关文章推荐
Apply an AutoFormat to an Excel Spreadsheet
Jun 12 Javascript
JavaScript 封装Ajax传递的数据代码
Jun 05 Javascript
用JavaScript实现用一个DIV来包装文本元素节点
Sep 09 Javascript
javascript中递归函数用法注意点
Jul 30 Javascript
基于JavaScript制作霓虹灯文字 代码 特效
Sep 01 Javascript
前端框架Vue.js构建大型应用浅析
Sep 12 Javascript
AngularJS 应用身份认证的技巧总结
Nov 07 Javascript
利用jQuery.Validate异步验证用户名是否存在(推荐)
Dec 09 Javascript
深入理解javascript函数参数与闭包
Dec 12 Javascript
老生常谈js中0到底是 true 还是 false
Mar 08 Javascript
layui添加动态菜单与选项卡
Jul 26 Javascript
JavaScript 接口原理与用法实例详解
May 12 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
PHP执行linux命令常用函数汇总
2016/02/02 PHP
php常用字符串查找函数strstr()与strpos()实例分析
2019/06/21 PHP
扩展String功能方法
2006/09/22 Javascript
JS URL传中文参数引发的乱码问题
2009/09/02 Javascript
仅IE支持clearAttributes/mergeAttributes方法使用介绍
2012/05/04 Javascript
如何在MVC应用程序中使用Jquery
2014/11/17 Javascript
javascript实现拖动元素交换位置
2015/11/29 Javascript
jQuery Validate插件实现表单强大的验证功能
2015/12/18 Javascript
JavaScript_ECMA5数组新特性详解
2016/06/12 Javascript
基于jQuery实现的幻灯图片切换
2016/12/02 Javascript
解析如何利用iframe标签以及js制作时钟
2016/12/08 Javascript
在Vue中如何使用Cookie操作实例
2017/07/27 Javascript
微信小程序仿美团城市选择
2018/06/06 Javascript
微信小程序实现漂亮的弹窗效果
2020/05/26 Javascript
vue router的基本使用和配置教程
2018/11/05 Javascript
如何使用puppet替换文件中的string
2018/12/06 Javascript
js实现中文实时时钟
2020/01/15 Javascript
Python实现将绝对URL替换成相对URL的方法
2015/06/28 Python
详解python 3.6 安装json 模块(simplejson)
2019/04/02 Python
解决python中用matplotlib画多幅图时出现图形部分重叠的问题
2019/07/07 Python
HTML5+JS实现俄罗斯方块原理及具体步骤
2013/11/29 HTML / CSS
澳大利亚相机之家:Camera House
2017/11/30 全球购物
工程造价与财务管理专业应届生求职信
2013/10/06 职场文书
计算机系毕业生推荐信
2013/11/06 职场文书
社区包粽子活动方案
2014/01/21 职场文书
家长对孩子的评语
2014/04/18 职场文书
应用心理学专业求职信
2014/08/04 职场文书
营销总监岗位职责
2014/09/16 职场文书
个人委托书怎么写
2014/09/17 职场文书
个人作风建设剖析材料
2014/10/11 职场文书
公司2014年度工作总结
2014/12/10 职场文书
离职感谢信怎么写
2015/01/22 职场文书
自我检讨书怎么写
2015/05/07 职场文书
2015年外贸业务员工作总结范文
2015/05/23 职场文书
Python中常见的导入方式总结
2021/05/06 Python
NodeJs使用webpack打包项目的方法详解
2022/02/28 NodeJs