如何实现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 相关文章推荐
表单提交验证类
Jul 14 Javascript
学习YUI.Ext基础第一天
Mar 10 Javascript
jQuery ajax 路由和过滤器使用说明
Aug 02 Javascript
地址栏传递中文参数乱码在js里用escape转码
Aug 28 Javascript
在Node.js中使用HTTP上传文件的方法
Jun 23 Javascript
javascript函数式编程程序员的工具集
Oct 11 Javascript
jQuery实现分页功能(含ajax请求、后台数据、附完整demo)
Apr 03 jQuery
详解vue.js+UEditor集成 [前后端分离项目]
Jul 07 Javascript
解决Layui数据表格显示无数据提示的问题
Nov 14 Javascript
JS实现商城秒杀倒计时功能(动态设置秒杀时间)
Dec 12 Javascript
Vue 中获取当前时间并实时刷新的实现代码
May 12 Javascript
Vue-cli4 配置 element-ui 按需引入操作
Sep 11 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
在wamp集成环境下升级php版本(实现方法)
2013/07/01 PHP
php中sprintf与printf函数用法区别解析
2014/02/17 PHP
开源php中文分词系统SCWS安装和使用实例
2014/04/11 PHP
PHP+Memcache实现wordpress访问总数统计(非插件)
2014/07/04 PHP
国产PHP开发框架myqee新手快速入门教程
2014/07/14 PHP
CI框架中通过hook的方式实现简单的权限控制
2015/01/07 PHP
PHP中使用imagick生成PSD文件缩略图教程
2015/01/26 PHP
PHP Class SoapClient not found解决方法
2018/01/20 PHP
JavaScript.Encode手动解码技巧
2010/07/14 Javascript
javascript ie6兼容position:fixed实现思路
2013/04/01 Javascript
第五章之BootStrap 栅格系统
2016/04/25 Javascript
BootStrap制作导航条实例代码
2016/05/06 Javascript
js匿名函数作为函数参数详解
2016/06/01 Javascript
JavaScript学习笔记整理_简单实现枚举类型,扑克牌应用
2016/09/19 Javascript
js图片轮播插件的封装
2017/07/21 Javascript
layui 弹出层回调获取弹出层数据的例子
2019/09/02 Javascript
原生JS实现pc端轮播图效果
2020/12/21 Javascript
python聊天程序实例代码分享
2013/11/18 Python
通过代码实例展示Python中列表生成式的用法
2015/03/31 Python
关于django 数据库迁移(migrate)应该知道的一些事
2018/05/27 Python
python多线程抽象编程模型详解
2019/03/20 Python
Django 权限认证(根据不同的用户,设置不同的显示和访问权限)
2019/07/24 Python
python判断自身是否正在运行的方法
2019/08/08 Python
Python使用Turtle库绘制一棵西兰花
2019/11/23 Python
详解用Python进行时间序列预测的7种方法
2020/03/13 Python
python中的socket实现ftp客户端和服务器收发文件及md5加密文件
2020/04/01 Python
使用 prometheus python 库编写自定义指标的方法(完整代码)
2020/06/29 Python
python中append函数用法讲解
2020/12/11 Python
HTML5 MiranaVideo播放器 (代码开源)
2010/06/11 HTML / CSS
蹦床仓库:Trampoline Warehouse
2018/12/06 全球购物
工作自我评价怎么写
2014/01/29 职场文书
具结保证书范本
2015/05/11 职场文书
导游词之桂林
2019/08/20 职场文书
用python自动生成日历
2021/04/24 Python
python用海龟绘图写贪吃蛇游戏
2021/06/18 Python
Java基础之this关键字的使用
2021/06/30 Java/Android